From d9acc1becca4260474943b415c85c97af79ae94c Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 9 Sep 2017 15:26:53 +0100 Subject: [PATCH 001/289] Only build ParPort support on x86, ARM and s390x long disabled it, only PPC HW that shipped it was long prior to anything we remotely support --- baseconfig/CONFIG_I2C_PARPORT_LIGHT | 2 +- baseconfig/CONFIG_PARPORT | 2 +- baseconfig/CONFIG_PARPORT_PC | 2 +- baseconfig/CONFIG_PPS_GENERATOR_PARPORT | 1 - baseconfig/arm/CONFIG_PARPORT | 1 - baseconfig/arm/arm64/CONFIG_PARPORT_PC | 1 - baseconfig/s390x/CONFIG_I2C_PARPORT | 1 - baseconfig/s390x/CONFIG_I2C_PARPORT_LIGHT | 1 - baseconfig/s390x/CONFIG_PARPORT | 1 - baseconfig/{ => x86}/CONFIG_I2C_PARPORT | 0 baseconfig/x86/CONFIG_I2C_PARPORT_LIGHT | 1 + baseconfig/x86/CONFIG_PARPORT | 1 + baseconfig/{ => x86}/CONFIG_PARPORT_1284 | 0 baseconfig/{ => x86}/CONFIG_PARPORT_AX88796 | 0 baseconfig/x86/CONFIG_PARPORT_PC | 1 + baseconfig/{ => x86}/CONFIG_PARPORT_PC_FIFO | 0 baseconfig/{ => x86}/CONFIG_PARPORT_PC_PCMCIA | 0 baseconfig/{ => x86}/CONFIG_PARPORT_PC_SUPERIO | 0 baseconfig/{ => x86}/CONFIG_PARPORT_SERIAL | 0 baseconfig/{ => x86}/CONFIG_PPS_CLIENT_PARPORT | 0 .../{ => x86}/CONFIG_USB_SERIAL_MOS7715_PARPORT | 0 kernel-aarch64-debug.config | 12 +----------- kernel-aarch64.config | 12 +----------- kernel-armv7hl-debug.config | 15 +++------------ kernel-armv7hl-lpae-debug.config | 15 +++------------ kernel-armv7hl-lpae.config | 15 +++------------ kernel-armv7hl.config | 15 +++------------ kernel-i686-PAE.config | 1 - kernel-i686-PAEdebug.config | 1 - kernel-i686-debug.config | 1 - kernel-i686.config | 1 - kernel-ppc64-debug.config | 16 +++------------- kernel-ppc64.config | 16 +++------------- kernel-ppc64le-debug.config | 16 +++------------- kernel-ppc64le.config | 16 +++------------- kernel-ppc64p7-debug.config | 16 +++------------- kernel-ppc64p7.config | 16 +++------------- kernel-s390x-debug.config | 12 +----------- kernel-s390x.config | 12 +----------- kernel-x86_64-debug.config | 1 - kernel-x86_64.config | 1 - kernel.spec | 3 +++ 42 files changed, 43 insertions(+), 185 deletions(-) delete mode 100644 baseconfig/CONFIG_PPS_GENERATOR_PARPORT delete mode 100644 baseconfig/arm/CONFIG_PARPORT delete mode 100644 baseconfig/arm/arm64/CONFIG_PARPORT_PC delete mode 100644 baseconfig/s390x/CONFIG_I2C_PARPORT delete mode 100644 baseconfig/s390x/CONFIG_I2C_PARPORT_LIGHT delete mode 100644 baseconfig/s390x/CONFIG_PARPORT rename baseconfig/{ => x86}/CONFIG_I2C_PARPORT (100%) create mode 100644 baseconfig/x86/CONFIG_I2C_PARPORT_LIGHT create mode 100644 baseconfig/x86/CONFIG_PARPORT rename baseconfig/{ => x86}/CONFIG_PARPORT_1284 (100%) rename baseconfig/{ => x86}/CONFIG_PARPORT_AX88796 (100%) create mode 100644 baseconfig/x86/CONFIG_PARPORT_PC rename baseconfig/{ => x86}/CONFIG_PARPORT_PC_FIFO (100%) rename baseconfig/{ => x86}/CONFIG_PARPORT_PC_PCMCIA (100%) rename baseconfig/{ => x86}/CONFIG_PARPORT_PC_SUPERIO (100%) rename baseconfig/{ => x86}/CONFIG_PARPORT_SERIAL (100%) rename baseconfig/{ => x86}/CONFIG_PPS_CLIENT_PARPORT (100%) rename baseconfig/{ => x86}/CONFIG_USB_SERIAL_MOS7715_PARPORT (100%) diff --git a/baseconfig/CONFIG_I2C_PARPORT_LIGHT b/baseconfig/CONFIG_I2C_PARPORT_LIGHT index 1dbc68883..e18239222 100644 --- a/baseconfig/CONFIG_I2C_PARPORT_LIGHT +++ b/baseconfig/CONFIG_I2C_PARPORT_LIGHT @@ -1 +1 @@ -CONFIG_I2C_PARPORT_LIGHT=m +# CONFIG_I2C_PARPORT_LIGHT is not set diff --git a/baseconfig/CONFIG_PARPORT b/baseconfig/CONFIG_PARPORT index 589156958..9dd8f33af 100644 --- a/baseconfig/CONFIG_PARPORT +++ b/baseconfig/CONFIG_PARPORT @@ -1 +1 @@ -CONFIG_PARPORT=m +# CONFIG_PARPORT is not set diff --git a/baseconfig/CONFIG_PARPORT_PC b/baseconfig/CONFIG_PARPORT_PC index b9aa6e8ca..e2a0d3656 100644 --- a/baseconfig/CONFIG_PARPORT_PC +++ b/baseconfig/CONFIG_PARPORT_PC @@ -1 +1 @@ -CONFIG_PARPORT_PC=m +# CONFIG_PARPORT_PC is not set diff --git a/baseconfig/CONFIG_PPS_GENERATOR_PARPORT b/baseconfig/CONFIG_PPS_GENERATOR_PARPORT deleted file mode 100644 index 10f4eca68..000000000 --- a/baseconfig/CONFIG_PPS_GENERATOR_PARPORT +++ /dev/null @@ -1 +0,0 @@ -CONFIG_PPS_GENERATOR_PARPORT=m diff --git a/baseconfig/arm/CONFIG_PARPORT b/baseconfig/arm/CONFIG_PARPORT deleted file mode 100644 index 9dd8f33af..000000000 --- a/baseconfig/arm/CONFIG_PARPORT +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_PARPORT is not set diff --git a/baseconfig/arm/arm64/CONFIG_PARPORT_PC b/baseconfig/arm/arm64/CONFIG_PARPORT_PC deleted file mode 100644 index e2a0d3656..000000000 --- a/baseconfig/arm/arm64/CONFIG_PARPORT_PC +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_PARPORT_PC is not set diff --git a/baseconfig/s390x/CONFIG_I2C_PARPORT b/baseconfig/s390x/CONFIG_I2C_PARPORT deleted file mode 100644 index 87b55caf2..000000000 --- a/baseconfig/s390x/CONFIG_I2C_PARPORT +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_I2C_PARPORT is not set diff --git a/baseconfig/s390x/CONFIG_I2C_PARPORT_LIGHT b/baseconfig/s390x/CONFIG_I2C_PARPORT_LIGHT deleted file mode 100644 index e18239222..000000000 --- a/baseconfig/s390x/CONFIG_I2C_PARPORT_LIGHT +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_I2C_PARPORT_LIGHT is not set diff --git a/baseconfig/s390x/CONFIG_PARPORT b/baseconfig/s390x/CONFIG_PARPORT deleted file mode 100644 index 9dd8f33af..000000000 --- a/baseconfig/s390x/CONFIG_PARPORT +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_PARPORT is not set diff --git a/baseconfig/CONFIG_I2C_PARPORT b/baseconfig/x86/CONFIG_I2C_PARPORT similarity index 100% rename from baseconfig/CONFIG_I2C_PARPORT rename to baseconfig/x86/CONFIG_I2C_PARPORT diff --git a/baseconfig/x86/CONFIG_I2C_PARPORT_LIGHT b/baseconfig/x86/CONFIG_I2C_PARPORT_LIGHT new file mode 100644 index 000000000..1dbc68883 --- /dev/null +++ b/baseconfig/x86/CONFIG_I2C_PARPORT_LIGHT @@ -0,0 +1 @@ +CONFIG_I2C_PARPORT_LIGHT=m diff --git a/baseconfig/x86/CONFIG_PARPORT b/baseconfig/x86/CONFIG_PARPORT new file mode 100644 index 000000000..589156958 --- /dev/null +++ b/baseconfig/x86/CONFIG_PARPORT @@ -0,0 +1 @@ +CONFIG_PARPORT=m diff --git a/baseconfig/CONFIG_PARPORT_1284 b/baseconfig/x86/CONFIG_PARPORT_1284 similarity index 100% rename from baseconfig/CONFIG_PARPORT_1284 rename to baseconfig/x86/CONFIG_PARPORT_1284 diff --git a/baseconfig/CONFIG_PARPORT_AX88796 b/baseconfig/x86/CONFIG_PARPORT_AX88796 similarity index 100% rename from baseconfig/CONFIG_PARPORT_AX88796 rename to baseconfig/x86/CONFIG_PARPORT_AX88796 diff --git a/baseconfig/x86/CONFIG_PARPORT_PC b/baseconfig/x86/CONFIG_PARPORT_PC new file mode 100644 index 000000000..b9aa6e8ca --- /dev/null +++ b/baseconfig/x86/CONFIG_PARPORT_PC @@ -0,0 +1 @@ +CONFIG_PARPORT_PC=m diff --git a/baseconfig/CONFIG_PARPORT_PC_FIFO b/baseconfig/x86/CONFIG_PARPORT_PC_FIFO similarity index 100% rename from baseconfig/CONFIG_PARPORT_PC_FIFO rename to baseconfig/x86/CONFIG_PARPORT_PC_FIFO diff --git a/baseconfig/CONFIG_PARPORT_PC_PCMCIA b/baseconfig/x86/CONFIG_PARPORT_PC_PCMCIA similarity index 100% rename from baseconfig/CONFIG_PARPORT_PC_PCMCIA rename to baseconfig/x86/CONFIG_PARPORT_PC_PCMCIA diff --git a/baseconfig/CONFIG_PARPORT_PC_SUPERIO b/baseconfig/x86/CONFIG_PARPORT_PC_SUPERIO similarity index 100% rename from baseconfig/CONFIG_PARPORT_PC_SUPERIO rename to baseconfig/x86/CONFIG_PARPORT_PC_SUPERIO diff --git a/baseconfig/CONFIG_PARPORT_SERIAL b/baseconfig/x86/CONFIG_PARPORT_SERIAL similarity index 100% rename from baseconfig/CONFIG_PARPORT_SERIAL rename to baseconfig/x86/CONFIG_PARPORT_SERIAL diff --git a/baseconfig/CONFIG_PPS_CLIENT_PARPORT b/baseconfig/x86/CONFIG_PPS_CLIENT_PARPORT similarity index 100% rename from baseconfig/CONFIG_PPS_CLIENT_PARPORT rename to baseconfig/x86/CONFIG_PPS_CLIENT_PARPORT diff --git a/baseconfig/CONFIG_USB_SERIAL_MOS7715_PARPORT b/baseconfig/x86/CONFIG_USB_SERIAL_MOS7715_PARPORT similarity index 100% rename from baseconfig/CONFIG_USB_SERIAL_MOS7715_PARPORT rename to baseconfig/x86/CONFIG_USB_SERIAL_MOS7715_PARPORT diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 0eaa71e58..6fc8e76f5 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -2035,8 +2035,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_PXA=m @@ -3880,14 +3879,8 @@ CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC is not set -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -4138,9 +4131,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -6076,7 +6067,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 47a36a9dc..ff26f1ace 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -2018,8 +2018,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_PXA=m @@ -3859,14 +3858,8 @@ CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC is not set -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -4117,9 +4110,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -6053,7 +6044,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 2f7d9c727..96dd0ac81 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -2173,8 +2173,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OMAP=y -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_PXA=m @@ -4167,14 +4166,8 @@ CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -4449,9 +4442,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5703,6 +5694,7 @@ CONFIG_SND_SOC_STORM=m # CONFIG_SND_SOC_TAS5720 is not set CONFIG_SND_SOC_TEGRA20_AC97=m CONFIG_SND_SOC_TEGRA20_DAS=m +CONFIG_SND_SOC_TEGRA20_I2S=m CONFIG_SND_SOC_TEGRA20_SPDIF=m CONFIG_SND_SOC_TEGRA30_AHUB=m CONFIG_SND_SOC_TEGRA30_I2S=m @@ -6605,7 +6597,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index caf7f36ed..1977b34f3 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -2063,8 +2063,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_PXA=m @@ -3954,14 +3953,8 @@ CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -4209,9 +4202,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5346,6 +5337,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS5720 is not set # CONFIG_SND_SOC_TEGRA20_AC97 is not set # CONFIG_SND_SOC_TEGRA20_DAS is not set +CONFIG_SND_SOC_TEGRA20_I2S=m # CONFIG_SND_SOC_TEGRA20_SPDIF is not set CONFIG_SND_SOC_TEGRA30_AHUB=m CONFIG_SND_SOC_TEGRA30_I2S=m @@ -6175,7 +6167,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index c82577254..8e9374768 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -2046,8 +2046,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_PXA=m @@ -3933,14 +3932,8 @@ CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -4188,9 +4181,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5323,6 +5314,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS5720 is not set # CONFIG_SND_SOC_TEGRA20_AC97 is not set # CONFIG_SND_SOC_TEGRA20_DAS is not set +CONFIG_SND_SOC_TEGRA20_I2S=m # CONFIG_SND_SOC_TEGRA20_SPDIF is not set CONFIG_SND_SOC_TEGRA30_AHUB=m CONFIG_SND_SOC_TEGRA30_I2S=m @@ -6152,7 +6144,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 4a1da02ef..852fdead3 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -2156,8 +2156,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OMAP=y -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_PXA=m @@ -4146,14 +4145,8 @@ CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -4428,9 +4421,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5680,6 +5671,7 @@ CONFIG_SND_SOC_STORM=m # CONFIG_SND_SOC_TAS5720 is not set CONFIG_SND_SOC_TEGRA20_AC97=m CONFIG_SND_SOC_TEGRA20_DAS=m +CONFIG_SND_SOC_TEGRA20_I2S=m CONFIG_SND_SOC_TEGRA20_SPDIF=m CONFIG_SND_SOC_TEGRA30_AHUB=m CONFIG_SND_SOC_TEGRA30_I2S=m @@ -6582,7 +6574,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index b7a9c232a..52a2c1ca9 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -3958,7 +3958,6 @@ CONFIG_PPS_CLIENT_GPIO=m CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 19ce6883e..ef80c5812 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -3978,7 +3978,6 @@ CONFIG_PPS_CLIENT_GPIO=m CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index b9e6a3926..c01104593 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -3978,7 +3978,6 @@ CONFIG_PPS_CLIENT_GPIO=m CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set diff --git a/kernel-i686.config b/kernel-i686.config index e9c919983..1b92c6a49 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -3958,7 +3958,6 @@ CONFIG_PPS_CLIENT_GPIO=m CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 3f5b1379e..da5951c32 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -1825,8 +1825,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OPAL=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_POWERMAC=m @@ -3578,14 +3577,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT is not set +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3804,9 +3797,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5497,7 +5488,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-ppc64.config b/kernel-ppc64.config index 915cdedf9..4df97c451 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -1807,8 +1807,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OPAL=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_POWERMAC=m @@ -3556,14 +3555,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT is not set +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3782,9 +3775,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5473,7 +5464,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index c370527a6..9171912e9 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -1778,8 +1778,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OPAL=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_RK3X is not set @@ -3523,14 +3522,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT is not set +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3744,9 +3737,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5426,7 +5417,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 7fce767f1..95ce5a0ee 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -1760,8 +1760,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OPAL=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_RK3X is not set @@ -3501,14 +3500,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT is not set +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3722,9 +3715,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5402,7 +5393,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config index 1c0c9440c..ad638cfee 100644 --- a/kernel-ppc64p7-debug.config +++ b/kernel-ppc64p7-debug.config @@ -1777,8 +1777,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OPAL=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_RK3X is not set @@ -3522,14 +3521,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT is not set +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3743,9 +3736,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5425,7 +5416,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config index 02ca43cfc..bd49c9e70 100644 --- a/kernel-ppc64p7.config +++ b/kernel-ppc64p7.config @@ -1759,8 +1759,7 @@ CONFIG_I2C_NFORCE2=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OPAL=m -CONFIG_I2C_PARPORT_LIGHT=m -CONFIG_I2C_PARPORT=m +# CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_RK3X is not set @@ -3500,14 +3499,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT is not set +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3721,9 +3714,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5401,7 +5392,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 78b40ced0..0b5805b96 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -1730,7 +1730,6 @@ CONFIG_I2C_MUX_MLXCPLD=m # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set -# CONFIG_I2C_PARPORT is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PCA_PLATFORM is not set # CONFIG_I2C_PIIX4 is not set @@ -3451,14 +3450,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3635,9 +3628,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5317,7 +5308,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index 2b85deb10..350349484 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -1712,7 +1712,6 @@ CONFIG_I2C_MUX_MLXCPLD=m # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_OCORES is not set -# CONFIG_I2C_PARPORT is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PCA_PLATFORM is not set # CONFIG_I2C_PIIX4 is not set @@ -3429,14 +3428,8 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_PANTHERLORD_FF=y # CONFIG_PARIDE is not set CONFIG_PARMAN=m -CONFIG_PARPORT_1284=y -# CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC_FIFO is not set -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_PC_SUPERIO is not set -CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m @@ -3613,9 +3606,7 @@ CONFIG_PPP_SYNC_TTY=m CONFIG_PPS_CLIENT_GPIO=m # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set @@ -5293,7 +5284,6 @@ CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 52a1fdbe5..e6fbdb4aa 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -4014,7 +4014,6 @@ CONFIG_PPS_CLIENT_GPIO=m CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 08afc3a7c..e33386a98 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -3994,7 +3994,6 @@ CONFIG_PPS_CLIENT_GPIO=m CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m # CONFIG_PPS_DEBUG is not set -CONFIG_PPS_GENERATOR_PARPORT=m CONFIG_PPS=m CONFIG_PPTP=m # CONFIG_PREEMPT is not set diff --git a/kernel.spec b/kernel.spec index b5feb3b3d..e9a90676c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2207,6 +2207,9 @@ fi # # %changelog +* Sat Sep 9 2017 Peter Robinson +- Only build ParPort support on x86 + * Mon Sep 4 2017 Peter Robinson - Revert drop of sun8i-emac DT bindings, we support for certain devs From 9a73c9a35743babc13efd25aaa7e0d42bd53edf6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 10 Sep 2017 14:34:22 +0100 Subject: [PATCH 002/289] drop patch for pre-prod qcom hardware --- kernel.spec | 15 ++++----- qcom-QDF2432-tmp-errata.patch | 59 ----------------------------------- 2 files changed, 6 insertions(+), 68 deletions(-) delete mode 100644 qcom-QDF2432-tmp-errata.patch diff --git a/kernel.spec b/kernel.spec index e9a90676c..9ddd92774 100644 --- a/kernel.spec +++ b/kernel.spec @@ -578,24 +578,21 @@ Patch211: drm-i915-hush-check-crtc-state.patch # 300 - ARM patches -# a tempory patch for QCOM hardware enablement. Will be gone by F-26 GA -Patch301: qcom-QDF2432-tmp-errata.patch - # http://www.spinics.net/lists/linux-tegra/msg26029.html -Patch302: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch +Patch301: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch # Fix OMAP4 (pandaboard) -Patch303: arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch +Patch302: arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch # http://patchwork.ozlabs.org/patch/587554/ -Patch304: ARM-tegra-usb-no-reset.patch +Patch303: ARM-tegra-usb-no-reset.patch -Patch305: allwinner-net-emac.patch +Patch304: allwinner-net-emac.patch # https://www.spinics.net/lists/arm-kernel/msg554183.html -Patch307: arm-imx6-hummingboard2.patch +Patch305: arm-imx6-hummingboard2.patch -Patch308: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch +Patch306: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch # https://patchwork.kernel.org/patch/9815555/ # https://patchwork.kernel.org/patch/9815651/ diff --git a/qcom-QDF2432-tmp-errata.patch b/qcom-QDF2432-tmp-errata.patch deleted file mode 100644 index f7ace4787..000000000 --- a/qcom-QDF2432-tmp-errata.patch +++ /dev/null @@ -1,59 +0,0 @@ -From edc7986d4d405daebaf2f66269b353da579fce5f Mon Sep 17 00:00:00 2001 -From: Christopher Covington -Date: Tue, 31 May 2016 16:19:02 -0400 -Subject: arm64: Workaround for QDF2432 ID_AA64 SR accesses - -The ARMv8.0 architecture reserves several system register encodings for -future use. These encodings should behave as read-only and always return -zero on a read. As described in Errata 94, the CPU cores in the QDF2432 -errantly cause an instruction abort if an AArch64 MRS instruction attempts -to read any of the following system register encodings: - - Op0, Op1, CRn, CRm, Op2 - 3, 0, C0, [C4-C7], [2-3, 6-7] - 3, 0, C0, C3, [3-7] - 3, 0, C0, [C4,C6,C7], [4-5] - 3, 0, C0, C2, [6-7] - -Naively projecting ARMv8.0 names, this space includes: - - ID_AA64PFR[2-7]_EL1 - ID_AA64DFR[2-3]_EL1 - ID_AA64AFR[2-3]_EL1 - ID_AA64ISAR[2-7]_EL1 - ID_AA64MMFR[2-7]_EL1 - -As of v4.8-rc2, Linux only attempts to query one register in this space, -ID_AA64MMFR2_EL1. As simple workaround, skip that access when the affected -MIDR is detected. - -Signed-off-by: Christopher Covington ---- - arch/arm64/kernel/cpuinfo.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c -index ed1b84f..790de6b 100644 ---- a/arch/arm64/kernel/cpuinfo.c -+++ b/arch/arm64/kernel/cpuinfo.c -@@ -325,6 +325,8 @@ static void cpuinfo_detect_icache_policy(struct cpuinfo_arm64 *info) - - static void __cpuinfo_store_cpu(struct cpuinfo_arm64 *info) - { -+ bool qdf2432_cpu = read_cpuid_id() == 0x510f2811; -+ - info->reg_cntfrq = arch_timer_get_cntfrq(); - info->reg_ctr = read_cpuid_cachetype(); - info->reg_dczid = read_cpuid(DCZID_EL0); -@@ -337,7 +339,7 @@ static void __cpuinfo_store_cpu(struct cpuinfo_arm64 *info) - info->reg_id_aa64isar1 = read_cpuid(ID_AA64ISAR1_EL1); - info->reg_id_aa64mmfr0 = read_cpuid(ID_AA64MMFR0_EL1); - info->reg_id_aa64mmfr1 = read_cpuid(ID_AA64MMFR1_EL1); -- info->reg_id_aa64mmfr2 = read_cpuid(ID_AA64MMFR2_EL1); -+ info->reg_id_aa64mmfr2 = qdf2432_cpu ? 0 : read_cpuid(ID_AA64MMFR2_EL1); - info->reg_id_aa64pfr0 = read_cpuid(ID_AA64PFR0_EL1); - info->reg_id_aa64pfr1 = read_cpuid(ID_AA64PFR1_EL1); - --- -cgit v0.12 - From 25e784f7bbb6a8d753fc9e0d1eb47f07a9774389 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Sun, 10 Sep 2017 09:15:30 -0700 Subject: [PATCH 003/289] Linux v4.13.1 --- kernel.spec | 7 +++++-- sources | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 9ddd92774..3a9a27810 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 0 +%define stable_update 1 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -2204,6 +2204,9 @@ fi # # %changelog +* Sun Sep 10 2017 Laura Abbott - 4.13.1-300 +- Linux v4.13.1 + * Sat Sep 9 2017 Peter Robinson - Only build ParPort support on x86 diff --git a/sources b/sources index 1a6b5b028..82bb8186b 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 +SHA512 (patch-4.13.1.xz) = 392ba115d4728730d73e3c66e07f0230894f44ae71851c26ec9707d5f26bc093a6f7043592232deddf2619d2c7d305e62b168b52a142c59f10970f22bf3fbe7e From d022a95e74d48a20f1cb500e7d31931b162a1040 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 11 Sep 2017 13:28:18 +0100 Subject: [PATCH 004/289] Raspberry Pi serial console fixes, minor other Pi improvements (rhbz #1487305). Various ARM cleanups, build mmc/pwrseq non modular --- ...cm2835-Add-the-DSI-module-nodes-and-.patch | 105 --- baseconfig/CONFIG_MMC_SDHCI_OF | 1 - baseconfig/CONFIG_PWRSEQ_SD8787 | 2 +- baseconfig/arm/CONFIG_CRYPTO_GHASH_ARM_CE | 1 + baseconfig/arm/CONFIG_MMC | 1 + baseconfig/arm/CONFIG_MMC_QCOM_DML | 1 - baseconfig/arm/CONFIG_PWRSEQ_EMMC | 1 + baseconfig/arm/CONFIG_PWRSEQ_SIMPLE | 1 + baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML | 1 + .../arm/armv7/CONFIG_CRYPTO_GHASH_ARM_CE | 1 - .../arm/{ => armv7}/CONFIG_DRM_SUN4I_HDMI | 0 .../arm/armv7/CONFIG_EXYNOS5420_MCPM not set | 1 - baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML | 1 + .../arm/armv7/armv7/CONFIG_MMC_SDHCI_OF_ESDHC | 1 + baseconfig/powerpc/CONFIG_MMC_SDHCI_OF | 1 - .../{ => powerpc64}/CONFIG_ADB_PMU_LED_DISK | 0 baseconfig/x86/i686/CONFIG_MMC_SDHCI_OF | 1 - baseconfig/x86/i686PAE/CONFIG_MMC_SDHCI_OF | 1 - bcm2837-bluetooth-support.patch | 642 ++++++++++++++++++ bcm2837-move-dt.patch | 516 ++++++++++++++ kernel-aarch64-debug.config | 13 +- kernel-aarch64.config | 13 +- kernel-armv7hl-debug.config | 13 +- kernel-armv7hl-lpae-debug.config | 13 +- kernel-armv7hl-lpae.config | 13 +- kernel-armv7hl.config | 13 +- kernel-i686-PAE.config | 3 +- kernel-i686-PAEdebug.config | 3 +- kernel-i686-debug.config | 3 +- kernel-i686.config | 3 +- kernel-ppc64-debug.config | 3 +- kernel-ppc64.config | 3 +- kernel-ppc64le-debug.config | 4 +- kernel-ppc64le.config | 4 +- kernel-ppc64p7-debug.config | 4 +- kernel-ppc64p7.config | 4 +- kernel-s390x-debug.config | 3 +- kernel-s390x.config | 3 +- kernel-x86_64-debug.config | 3 +- kernel-x86_64.config | 3 +- kernel.spec | 15 +- 41 files changed, 1227 insertions(+), 191 deletions(-) delete mode 100644 Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch delete mode 100644 baseconfig/CONFIG_MMC_SDHCI_OF create mode 100644 baseconfig/arm/CONFIG_CRYPTO_GHASH_ARM_CE create mode 100644 baseconfig/arm/CONFIG_MMC delete mode 100644 baseconfig/arm/CONFIG_MMC_QCOM_DML create mode 100644 baseconfig/arm/CONFIG_PWRSEQ_EMMC create mode 100644 baseconfig/arm/CONFIG_PWRSEQ_SIMPLE create mode 100644 baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML delete mode 100644 baseconfig/arm/armv7/CONFIG_CRYPTO_GHASH_ARM_CE rename baseconfig/arm/{ => armv7}/CONFIG_DRM_SUN4I_HDMI (100%) delete mode 100644 baseconfig/arm/armv7/CONFIG_EXYNOS5420_MCPM not set create mode 100644 baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_MMC_SDHCI_OF_ESDHC delete mode 100644 baseconfig/powerpc/CONFIG_MMC_SDHCI_OF rename baseconfig/powerpc/{ => powerpc64}/CONFIG_ADB_PMU_LED_DISK (100%) delete mode 100644 baseconfig/x86/i686/CONFIG_MMC_SDHCI_OF delete mode 100644 baseconfig/x86/i686PAE/CONFIG_MMC_SDHCI_OF create mode 100644 bcm2837-bluetooth-support.patch create mode 100644 bcm2837-move-dt.patch diff --git a/Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch b/Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch deleted file mode 100644 index 235c39162..000000000 --- a/Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 7d9e74c53a4376245b4f05006f42184a1540dee8 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Tue, 18 Jul 2017 23:21:50 +0100 -Subject: [PATCH] Revert "ARM: dts: bcm2835: Add the DSI module nodes and - clocks." - -This reverts commit 4aba4cf820545ca8ec23785c7bac40bba7e505c5. ---- - arch/arm/boot/dts/bcm2835-rpi.dtsi | 8 ------- - arch/arm/boot/dts/bcm283x.dtsi | 48 +++----------------------------------- - 2 files changed, 3 insertions(+), 53 deletions(-) - -diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi -index a7b5ce133784..e99bb149065f 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi.dtsi -+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi -@@ -98,11 +98,3 @@ - power-domains = <&power RPI_POWER_DOMAIN_VEC>; - status = "okay"; - }; -- --&dsi0 { -- power-domains = <&power RPI_POWER_DOMAIN_DSI0>; --}; -- --&dsi1 { -- power-domains = <&power RPI_POWER_DOMAIN_DSI1>; --}; -diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi -index 9444a9a9ba10..ce14c9ddf574 100644 ---- a/arch/arm/boot/dts/bcm283x.dtsi -+++ b/arch/arm/boot/dts/bcm283x.dtsi -@@ -98,13 +98,10 @@ - #clock-cells = <1>; - reg = <0x7e101000 0x2000>; - -- /* CPRMAN derives almost everything from the -- * platform's oscillator. However, the DSI -- * pixel clocks come from the DSI analog PHY. -+ /* CPRMAN derives everything from the platform's -+ * oscillator. - */ -- clocks = <&clk_osc>, -- <&dsi0 0>, <&dsi0 1>, <&dsi0 2>, -- <&dsi1 0>, <&dsi1 1>, <&dsi1 2>; -+ clocks = <&clk_osc>; - }; - - rng@7e104000 { -@@ -412,25 +409,6 @@ - interrupts = <2 14>; /* pwa1 */ - }; - -- dsi0: dsi@7e209000 { -- compatible = "brcm,bcm2835-dsi0"; -- reg = <0x7e209000 0x78>; -- interrupts = <2 4>; -- #address-cells = <1>; -- #size-cells = <0>; -- #clock-cells = <1>; -- -- clocks = <&clocks BCM2835_PLLA_DSI0>, -- <&clocks BCM2835_CLOCK_DSI0E>, -- <&clocks BCM2835_CLOCK_DSI0P>; -- clock-names = "phy", "escape", "pixel"; -- -- clock-output-names = "dsi0_byte", -- "dsi0_ddr2", -- "dsi0_ddr"; -- -- }; -- - thermal: thermal@7e212000 { - compatible = "brcm,bcm2835-thermal"; - reg = <0x7e212000 0x8>; -@@ -497,26 +475,6 @@ - interrupts = <2 1>; - }; - -- dsi1: dsi@7e700000 { -- compatible = "brcm,bcm2835-dsi1"; -- reg = <0x7e700000 0x8c>; -- interrupts = <2 12>; -- #address-cells = <1>; -- #size-cells = <0>; -- #clock-cells = <1>; -- -- clocks = <&clocks BCM2835_PLLD_DSI1>, -- <&clocks BCM2835_CLOCK_DSI1E>, -- <&clocks BCM2835_CLOCK_DSI1P>; -- clock-names = "phy", "escape", "pixel"; -- -- clock-output-names = "dsi1_byte", -- "dsi1_ddr2", -- "dsi1_ddr"; -- -- status = "disabled"; -- }; -- - i2c1: i2c@7e804000 { - compatible = "brcm,bcm2835-i2c"; - reg = <0x7e804000 0x1000>; --- -2.13.3 - diff --git a/baseconfig/CONFIG_MMC_SDHCI_OF b/baseconfig/CONFIG_MMC_SDHCI_OF deleted file mode 100644 index 2e588649a..000000000 --- a/baseconfig/CONFIG_MMC_SDHCI_OF +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MMC_SDHCI_OF is not set diff --git a/baseconfig/CONFIG_PWRSEQ_SD8787 b/baseconfig/CONFIG_PWRSEQ_SD8787 index 243dba034..820984327 100644 --- a/baseconfig/CONFIG_PWRSEQ_SD8787 +++ b/baseconfig/CONFIG_PWRSEQ_SD8787 @@ -1 +1 @@ -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m diff --git a/baseconfig/arm/CONFIG_CRYPTO_GHASH_ARM_CE b/baseconfig/arm/CONFIG_CRYPTO_GHASH_ARM_CE new file mode 100644 index 000000000..5c70cb19a --- /dev/null +++ b/baseconfig/arm/CONFIG_CRYPTO_GHASH_ARM_CE @@ -0,0 +1 @@ +CONFIG_CRYPTO_GHASH_ARM_CE=m diff --git a/baseconfig/arm/CONFIG_MMC b/baseconfig/arm/CONFIG_MMC new file mode 100644 index 000000000..7c2be178c --- /dev/null +++ b/baseconfig/arm/CONFIG_MMC @@ -0,0 +1 @@ +CONFIG_MMC=y diff --git a/baseconfig/arm/CONFIG_MMC_QCOM_DML b/baseconfig/arm/CONFIG_MMC_QCOM_DML deleted file mode 100644 index 11f7e7eba..000000000 --- a/baseconfig/arm/CONFIG_MMC_QCOM_DML +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MMC_QCOM_DML is not set diff --git a/baseconfig/arm/CONFIG_PWRSEQ_EMMC b/baseconfig/arm/CONFIG_PWRSEQ_EMMC new file mode 100644 index 000000000..29e883d93 --- /dev/null +++ b/baseconfig/arm/CONFIG_PWRSEQ_EMMC @@ -0,0 +1 @@ +CONFIG_PWRSEQ_EMMC=y diff --git a/baseconfig/arm/CONFIG_PWRSEQ_SIMPLE b/baseconfig/arm/CONFIG_PWRSEQ_SIMPLE new file mode 100644 index 000000000..7c8ad9b8a --- /dev/null +++ b/baseconfig/arm/CONFIG_PWRSEQ_SIMPLE @@ -0,0 +1 @@ +CONFIG_PWRSEQ_SIMPLE=y diff --git a/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML b/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML new file mode 100644 index 000000000..059d0d4f2 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML @@ -0,0 +1 @@ +CONFIG_MMC_QCOM_DML=m diff --git a/baseconfig/arm/armv7/CONFIG_CRYPTO_GHASH_ARM_CE b/baseconfig/arm/armv7/CONFIG_CRYPTO_GHASH_ARM_CE deleted file mode 100644 index e2ffa82ef..000000000 --- a/baseconfig/arm/armv7/CONFIG_CRYPTO_GHASH_ARM_CE +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_CRYPTO_GHASH_ARM_CE is not set diff --git a/baseconfig/arm/CONFIG_DRM_SUN4I_HDMI b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI similarity index 100% rename from baseconfig/arm/CONFIG_DRM_SUN4I_HDMI rename to baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI diff --git a/baseconfig/arm/armv7/CONFIG_EXYNOS5420_MCPM not set b/baseconfig/arm/armv7/CONFIG_EXYNOS5420_MCPM not set deleted file mode 100644 index d161874fe..000000000 --- a/baseconfig/arm/armv7/CONFIG_EXYNOS5420_MCPM not set +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_EXYNOS5420_MCPM not set diff --git a/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML b/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML new file mode 100644 index 000000000..059d0d4f2 --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML @@ -0,0 +1 @@ +CONFIG_MMC_QCOM_DML=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MMC_SDHCI_OF_ESDHC b/baseconfig/arm/armv7/armv7/CONFIG_MMC_SDHCI_OF_ESDHC new file mode 100644 index 000000000..40e2f68cb --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_MMC_SDHCI_OF_ESDHC @@ -0,0 +1 @@ +CONFIG_MMC_SDHCI_OF_ESDHC=m diff --git a/baseconfig/powerpc/CONFIG_MMC_SDHCI_OF b/baseconfig/powerpc/CONFIG_MMC_SDHCI_OF deleted file mode 100644 index d2e2790aa..000000000 --- a/baseconfig/powerpc/CONFIG_MMC_SDHCI_OF +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MMC_SDHCI_OF=m diff --git a/baseconfig/powerpc/CONFIG_ADB_PMU_LED_DISK b/baseconfig/powerpc/powerpc64/CONFIG_ADB_PMU_LED_DISK similarity index 100% rename from baseconfig/powerpc/CONFIG_ADB_PMU_LED_DISK rename to baseconfig/powerpc/powerpc64/CONFIG_ADB_PMU_LED_DISK diff --git a/baseconfig/x86/i686/CONFIG_MMC_SDHCI_OF b/baseconfig/x86/i686/CONFIG_MMC_SDHCI_OF deleted file mode 100644 index 2e588649a..000000000 --- a/baseconfig/x86/i686/CONFIG_MMC_SDHCI_OF +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MMC_SDHCI_OF is not set diff --git a/baseconfig/x86/i686PAE/CONFIG_MMC_SDHCI_OF b/baseconfig/x86/i686PAE/CONFIG_MMC_SDHCI_OF deleted file mode 100644 index 2e588649a..000000000 --- a/baseconfig/x86/i686PAE/CONFIG_MMC_SDHCI_OF +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MMC_SDHCI_OF is not set diff --git a/bcm2837-bluetooth-support.patch b/bcm2837-bluetooth-support.patch new file mode 100644 index 000000000..bdba4aa28 --- /dev/null +++ b/bcm2837-bluetooth-support.patch @@ -0,0 +1,642 @@ +From 98dc77d57169f51d100f8b0cb3e4d1e0911ef7a4 Mon Sep 17 00:00:00 2001 +From: Loic Poulain +Date: Tue, 4 Jul 2017 12:57:56 +0200 +Subject: Bluetooth: hci_bcm: Make bcm_request_irq fail if no IRQ resource + +In case of no IRQ resource associated to the bcm_device, requesting +IRQ should return an error in order to not enable low power mgmt. + +Signed-off-by: Loic Poulain +Reported-by: Ian Molton +Signed-off-by: Marcel Holtmann +--- + drivers/bluetooth/hci_bcm.c | 30 ++++++++++++++++-------------- + 1 file changed, 16 insertions(+), 14 deletions(-) + +diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c +index 6a662d0..6b42372 100644 +--- a/drivers/bluetooth/hci_bcm.c ++++ b/drivers/bluetooth/hci_bcm.c +@@ -176,7 +176,7 @@ static irqreturn_t bcm_host_wake(int irq, void *data) + static int bcm_request_irq(struct bcm_data *bcm) + { + struct bcm_device *bdev = bcm->dev; +- int err = 0; ++ int err; + + /* If this is not a platform device, do not enable PM functionalities */ + mutex_lock(&bcm_device_lock); +@@ -185,21 +185,23 @@ static int bcm_request_irq(struct bcm_data *bcm) + goto unlock; + } + +- if (bdev->irq > 0) { +- err = devm_request_irq(&bdev->pdev->dev, bdev->irq, +- bcm_host_wake, IRQF_TRIGGER_RISING, +- "host_wake", bdev); +- if (err) +- goto unlock; ++ if (bdev->irq <= 0) { ++ err = -EOPNOTSUPP; ++ goto unlock; ++ } + +- device_init_wakeup(&bdev->pdev->dev, true); ++ err = devm_request_irq(&bdev->pdev->dev, bdev->irq, bcm_host_wake, ++ IRQF_TRIGGER_RISING, "host_wake", bdev); ++ if (err) ++ goto unlock; + +- pm_runtime_set_autosuspend_delay(&bdev->pdev->dev, +- BCM_AUTOSUSPEND_DELAY); +- pm_runtime_use_autosuspend(&bdev->pdev->dev); +- pm_runtime_set_active(&bdev->pdev->dev); +- pm_runtime_enable(&bdev->pdev->dev); +- } ++ device_init_wakeup(&bdev->pdev->dev, true); ++ ++ pm_runtime_set_autosuspend_delay(&bdev->pdev->dev, ++ BCM_AUTOSUSPEND_DELAY); ++ pm_runtime_use_autosuspend(&bdev->pdev->dev); ++ pm_runtime_set_active(&bdev->pdev->dev); ++ pm_runtime_enable(&bdev->pdev->dev); + + unlock: + mutex_unlock(&bcm_device_lock); +-- +cgit v1.1 + +From 74183a1c50a3c61e62d2e585107ea3c0b942a3ff Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Wed, 16 Aug 2017 09:53:30 +0200 +Subject: Bluetooth: hci_bcm: Use operation speed of 4Mbps only for ACPI + devices + +Not all Broadcom controller support the 4Mbps operational speed on UART +devices. This is because the UART clock setting changes might not be +supported. + + < HCI Command: Broadcom Write UART Clock Setting (0x3f|0x0045) plen 1 + 01 . + > HCI Event: Command Complete (0x0e) plen 4 + Broadcom Write UART Clock Setting (0x3f|0x0045) ncmd 1 + Status: Unknown HCI Command (0x01) + +To support any operational speed higher than 3Mbps, support for this +command is required. With that respect it is better to not enforce any +operational speed by default. Only when its support is known, then allow +for higher operational speed. + +This patch assigns the 4Mbps opertional speed only for devices +discovered through ACPI and leave all others at the default 115200. + +Signed-off-by: Marcel Holtmann +Signed-off-by: Johan Hedberg +--- + drivers/bluetooth/hci_bcm.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c +index 6b42372..1eb286a 100644 +--- a/drivers/bluetooth/hci_bcm.c ++++ b/drivers/bluetooth/hci_bcm.c +@@ -59,6 +59,7 @@ struct bcm_device { + bool clk_enabled; + + u32 init_speed; ++ u32 oper_speed; + int irq; + u8 irq_polarity; + +@@ -303,6 +304,7 @@ static int bcm_open(struct hci_uart *hu) + if (hu->tty->dev->parent == dev->pdev->dev.parent) { + bcm->dev = dev; + hu->init_speed = dev->init_speed; ++ hu->oper_speed = dev->oper_speed; + #ifdef CONFIG_PM + dev->hu = hu; + #endif +@@ -699,8 +701,10 @@ static int bcm_resource(struct acpi_resource *ares, void *data) + + case ACPI_RESOURCE_TYPE_SERIAL_BUS: + sb = &ares->data.uart_serial_bus; +- if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_UART) ++ if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_UART) { + dev->init_speed = sb->default_baud_rate; ++ dev->oper_speed = 4000000; ++ } + break; + + default: +@@ -853,7 +857,6 @@ static const struct hci_uart_proto bcm_proto = { + .name = "Broadcom", + .manufacturer = 15, + .init_speed = 115200, +- .oper_speed = 4000000, + .open = bcm_open, + .close = bcm_close, + .flush = bcm_flush, +-- +cgit v1.1 + +From 33cd149e767be9afbab9fcd3d5165a2de62313c8 Mon Sep 17 00:00:00 2001 +From: Loic Poulain +Date: Thu, 17 Aug 2017 19:59:51 +0200 +Subject: Bluetooth: hci_bcm: Add serdev support + +Add basic support for Broadcom serial slave devices. +Probe the serial device, retrieve its maximum speed and +register a new hci uart device. + +Tested/compatible with bcm43438 (RPi3). + +Signed-off-by: Loic Poulain +Signed-off-by: Marcel Holtmann +--- + drivers/bluetooth/Kconfig | 1 + + drivers/bluetooth/hci_bcm.c | 85 +++++++++++++++++++++++++++++++++++++++++++-- + 2 files changed, 84 insertions(+), 2 deletions(-) + +diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig +index 3a6ead6..fae5a74 100644 +--- a/drivers/bluetooth/Kconfig ++++ b/drivers/bluetooth/Kconfig +@@ -168,6 +168,7 @@ config BT_HCIUART_INTEL + config BT_HCIUART_BCM + bool "Broadcom protocol support" + depends on BT_HCIUART ++ depends on BT_HCIUART_SERDEV + select BT_HCIUART_H4 + select BT_BCM + help +diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c +index 1eb286a..34882f1 100644 +--- a/drivers/bluetooth/hci_bcm.c ++++ b/drivers/bluetooth/hci_bcm.c +@@ -27,6 +27,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -34,6 +36,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -46,6 +49,7 @@ + + #define BCM_AUTOSUSPEND_DELAY 5000 /* default autosleep delay */ + ++/* platform device driver resources */ + struct bcm_device { + struct list_head list; + +@@ -69,6 +73,12 @@ struct bcm_device { + #endif + }; + ++/* serdev driver resources */ ++struct bcm_serdev { ++ struct hci_uart hu; ++}; ++ ++/* generic bcm uart resources */ + struct bcm_data { + struct sk_buff *rx_skb; + struct sk_buff_head txq; +@@ -80,6 +90,14 @@ struct bcm_data { + static DEFINE_MUTEX(bcm_device_lock); + static LIST_HEAD(bcm_device_list); + ++static inline void host_set_baudrate(struct hci_uart *hu, unsigned int speed) ++{ ++ if (hu->serdev) ++ serdev_device_set_baudrate(hu->serdev, speed); ++ else ++ hci_uart_set_baudrate(hu, speed); ++} ++ + static int bcm_set_baudrate(struct hci_uart *hu, unsigned int speed) + { + struct hci_dev *hdev = hu->hdev; +@@ -290,6 +308,14 @@ static int bcm_open(struct hci_uart *hu) + + hu->priv = bcm; + ++ /* If this is a serdev defined device, then only use ++ * serdev open primitive and skip the rest. ++ */ ++ if (hu->serdev) { ++ serdev_device_open(hu->serdev); ++ goto out; ++ } ++ + if (!hu->tty->dev) + goto out; + +@@ -325,6 +351,12 @@ static int bcm_close(struct hci_uart *hu) + + bt_dev_dbg(hu->hdev, "hu %p", hu); + ++ /* If this is a serdev defined device, only use serdev ++ * close primitive and then continue as usual. ++ */ ++ if (hu->serdev) ++ serdev_device_close(hu->serdev); ++ + /* Protect bcm->dev against removal of the device or driver */ + mutex_lock(&bcm_device_lock); + if (bcm_device_exists(bdev)) { +@@ -400,7 +432,7 @@ static int bcm_setup(struct hci_uart *hu) + speed = 0; + + if (speed) +- hci_uart_set_baudrate(hu, speed); ++ host_set_baudrate(hu, speed); + + /* Operational speed if any */ + if (hu->oper_speed) +@@ -413,7 +445,7 @@ static int bcm_setup(struct hci_uart *hu) + if (speed) { + err = bcm_set_baudrate(hu, speed); + if (!err) +- hci_uart_set_baudrate(hu, speed); ++ host_set_baudrate(hu, speed); + } + + finalize: +@@ -906,9 +938,57 @@ static struct platform_driver bcm_driver = { + }, + }; + ++static int bcm_serdev_probe(struct serdev_device *serdev) ++{ ++ struct bcm_serdev *bcmdev; ++ u32 speed; ++ int err; ++ ++ bcmdev = devm_kzalloc(&serdev->dev, sizeof(*bcmdev), GFP_KERNEL); ++ if (!bcmdev) ++ return -ENOMEM; ++ ++ bcmdev->hu.serdev = serdev; ++ serdev_device_set_drvdata(serdev, bcmdev); ++ ++ err = device_property_read_u32(&serdev->dev, "max-speed", &speed); ++ if (!err) ++ bcmdev->hu.oper_speed = speed; ++ ++ return hci_uart_register_device(&bcmdev->hu, &bcm_proto); ++} ++ ++static void bcm_serdev_remove(struct serdev_device *serdev) ++{ ++ struct bcm_serdev *bcmdev = serdev_device_get_drvdata(serdev); ++ ++ hci_uart_unregister_device(&bcmdev->hu); ++} ++ ++#ifdef CONFIG_OF ++static const struct of_device_id bcm_bluetooth_of_match[] = { ++ { .compatible = "brcm,bcm43438-bt" }, ++ { }, ++}; ++MODULE_DEVICE_TABLE(of, bcm_bluetooth_of_match); ++#endif ++ ++static struct serdev_device_driver bcm_serdev_driver = { ++ .probe = bcm_serdev_probe, ++ .remove = bcm_serdev_remove, ++ .driver = { ++ .name = "hci_uart_bcm", ++ .of_match_table = of_match_ptr(bcm_bluetooth_of_match), ++ }, ++}; ++ + int __init bcm_init(void) + { ++ /* For now, we need to keep both platform device ++ * driver (ACPI generated) and serdev driver (DT). ++ */ + platform_driver_register(&bcm_driver); ++ serdev_device_driver_register(&bcm_serdev_driver); + + return hci_uart_register_proto(&bcm_proto); + } +@@ -916,6 +996,7 @@ int __init bcm_init(void) + int __exit bcm_deinit(void) + { + platform_driver_unregister(&bcm_driver); ++ serdev_device_driver_unregister(&bcm_serdev_driver); + + return hci_uart_unregister_proto(&bcm_proto); + } +-- +cgit v1.1 + +From 01d5e44ace8a20fc51e0d530f98acb3c365345a5 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Thu, 17 Aug 2017 21:41:09 +0200 +Subject: Bluetooth: hci_bcm: Handle empty packet after firmware loading + +The Broadcom controller on the Raspberry Pi3 sends an empty packet with +packet type 0x00 after launching the firmware. This will cause logging +of errors. + + Bluetooth: hci0: Frame reassembly failed (-84) + +Since this seems to be an intented behaviour of the controller, handle +it gracefully by parsing that empty packet with packet type 0x00 and +then just simply report it as diagnostic packet. + +With that change no errors are logging and the packet itself is actually +recorded in the Bluetooth monitor traces. + + < HCI Command: Broadcom Launch RAM (0x3f|0x004e) plen 4 + Address: 0xffffffff + > HCI Event: Command Complete (0x0e) plen 4 + Broadcom Launch RAM (0x3f|0x004e) ncmd 1 + Status: Success (0x00) + = Vendor Diagnostic (len 0) + < HCI Command: Broadcom Update UART Baud Rate (0x3f|0x0018) plen 6 + 00 00 00 10 0e 00 ...... + > HCI Event: Command Complete (0x0e) plen 4 + Broadcom Update UART Baud Rate (0x3f|0x0018) ncmd 1 + Status: Success (0x00) + < HCI Command: Reset (0x03|0x0003) plen 0 + > HCI Event: Command Complete (0x0e) plen 4 + Reset (0x03|0x0003) ncmd 1 + Status: Success (0x00) + +Signed-off-by: Marcel Holtmann +Signed-off-by: Johan Hedberg +--- + drivers/bluetooth/hci_bcm.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c +index 34882f1..e254011 100644 +--- a/drivers/bluetooth/hci_bcm.c ++++ b/drivers/bluetooth/hci_bcm.c +@@ -44,6 +44,9 @@ + #include "btbcm.h" + #include "hci_uart.h" + ++#define BCM_NULL_PKT 0x00 ++#define BCM_NULL_SIZE 0 ++ + #define BCM_LM_DIAG_PKT 0x07 + #define BCM_LM_DIAG_SIZE 63 + +@@ -468,11 +471,19 @@ finalize: + .lsize = 0, \ + .maxlen = BCM_LM_DIAG_SIZE + ++#define BCM_RECV_NULL \ ++ .type = BCM_NULL_PKT, \ ++ .hlen = BCM_NULL_SIZE, \ ++ .loff = 0, \ ++ .lsize = 0, \ ++ .maxlen = BCM_NULL_SIZE ++ + static const struct h4_recv_pkt bcm_recv_pkts[] = { + { H4_RECV_ACL, .recv = hci_recv_frame }, + { H4_RECV_SCO, .recv = hci_recv_frame }, + { H4_RECV_EVENT, .recv = hci_recv_frame }, + { BCM_RECV_LM_DIAG, .recv = hci_recv_diag }, ++ { BCM_RECV_NULL, .recv = hci_recv_diag }, + }; + + static int bcm_recv(struct hci_uart *hu, const void *data, int count) +-- +cgit v1.1 + +From c34dc3bfa7642fda423208579015d615f7becfa0 Mon Sep 17 00:00:00 2001 +From: Ian Molton +Date: Sat, 8 Jul 2017 17:37:41 +0100 +Subject: Bluetooth: hci_serdev: Introduce hci_uart_unregister_device() + +Several drivers have the same (and incorrect) code in their +_remove() handler. + +Coalesce this into a shared function. + +Signed-off-by: Ian Molton +Reviewed-by: Sebastian Reichel +Signed-off-by: Marcel Holtmann +--- + drivers/bluetooth/hci_serdev.c | 13 +++++++++++++ + drivers/bluetooth/hci_uart.h | 1 + + 2 files changed, 14 insertions(+) + +diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c +index aea9301..b725ac4 100644 +--- a/drivers/bluetooth/hci_serdev.c ++++ b/drivers/bluetooth/hci_serdev.c +@@ -354,3 +354,16 @@ err_alloc: + return err; + } + EXPORT_SYMBOL_GPL(hci_uart_register_device); ++ ++void hci_uart_unregister_device(struct hci_uart *hu) ++{ ++ struct hci_dev *hdev = hu->hdev; ++ ++ hci_unregister_dev(hdev); ++ hci_free_dev(hdev); ++ ++ cancel_work_sync(&hu->write_work); ++ ++ hu->proto->close(hu); ++} ++EXPORT_SYMBOL_GPL(hci_uart_unregister_device); +diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h +index c6e9e1c..d9cd95d 100644 +--- a/drivers/bluetooth/hci_uart.h ++++ b/drivers/bluetooth/hci_uart.h +@@ -112,6 +112,7 @@ struct hci_uart { + int hci_uart_register_proto(const struct hci_uart_proto *p); + int hci_uart_unregister_proto(const struct hci_uart_proto *p); + int hci_uart_register_device(struct hci_uart *hu, const struct hci_uart_proto *p); ++void hci_uart_unregister_device(struct hci_uart *hu); + + int hci_uart_tx_wakeup(struct hci_uart *hu); + int hci_uart_init_ready(struct hci_uart *hu); +-- +cgit v1.1 + +From patchwork Thu Aug 17 17:59:48 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [v4,1/4] dt-bindings: net: bluetooth: Add broadcom-bluetooth +X-Patchwork-Submitter: Loic Poulain +X-Patchwork-Id: 802828 +Message-Id: <1502992791-10265-1-git-send-email-loic.poulain@gmail.com> +To: robh+dt@kernel.org, f.fainelli@gmail.com, rjui@broadcom.com, + marcel@holtmann.org, johan.hedberg@gmail.com, stefan.wahren@i2se.com +Cc: devicetree@vger.kernel.org, linux-bluetooth@vger.kernel.org, + linux-rpi-kernel@lists.infradead.org, Loic Poulain +Date: Thu, 17 Aug 2017 19:59:48 +0200 +From: Loic Poulain +List-Id: + +Add binding document for serial bluetooth chips using +Broadcom protocol. + +Signed-off-by: Loic Poulain +Acked-by: Rob Herring +Acked-by: Rob Herring +Acked-by: Rob Herring +--- + v2: dt-bindings as separate patch + rebase on upcoming pi3 dts changes + v3: changes in bcm serdev drivers: + name refactoring and additional comments + Add generic host_set_baudrate method + Use agnostic device_property_read + v4: changes in doc and dts: + Add additional params to broadcom bt dt-bindings + Set the max baudrate to 2000000 instead of 921600 + use chosen/stdout-path instead of console= + remove useless earlyprintk + same changes in bcm283x.dtsi + + .../devicetree/bindings/net/broadcom-bluetooth.txt | 35 ++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + create mode 100644 Documentation/devicetree/bindings/net/broadcom-bluetooth.txt + +diff --git a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt +new file mode 100644 +index 0000000..4194ff7 +--- /dev/null ++++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt +@@ -0,0 +1,35 @@ ++Broadcom Bluetooth Chips ++--------------------- ++ ++This documents the binding structure and common properties for serial ++attached Broadcom devices. ++ ++Serial attached Broadcom devices shall be a child node of the host UART ++device the slave device is attached to. ++ ++Required properties: ++ ++ - compatible: should contain one of the following: ++ * "brcm,bcm43438-bt" ++ ++Optional properties: ++ ++ - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt ++ - shutdown-gpios: GPIO specifier, used to enable the BT module ++ - device-wakeup-gpios: GPIO specifier, used to wakeup the controller ++ - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor ++ - clocks: clock specifier if external clock provided to the controller ++ - clock-names: should be "extclk" ++ ++ ++Example: ++ ++&uart2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart2_pins>; ++ ++ bluetooth { ++ compatible = "brcm,bcm43438-bt"; ++ max-speed = <921600>; ++ }; ++}; +From a92507095467d77f4fd05f54ae8d299459c2c3a3 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sun, 10 Sep 2017 19:29:23 +0100 +Subject: [PATCH 1/2] ARM: dts: bcm283x: Use stdout-path instead of console + bootarg + +Add the serial port config to "chosen/stdout-path". +Create serial0/1 aliases referring to uart0 ant uart1 paths. +Remove unneeded earlyprintk. + +Signed-off-by: Loic Poulain +Signed-off-by: Peter Robinson +--- + arch/arm/boot/dts/bcm283x.dtsi | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi +index 431dcfc900c0..013431e3d7c3 100644 +--- a/arch/arm/boot/dts/bcm283x.dtsi ++++ b/arch/arm/boot/dts/bcm283x.dtsi +@@ -20,8 +20,13 @@ + #address-cells = <1>; + #size-cells = <1>; + ++ aliases { ++ serial0 = &uart0; ++ serial1 = &uart1; ++ }; ++ + chosen { +- bootargs = "earlyprintk console=ttyAMA0"; ++ stdout-path = "serial0:115200n8"; + }; + + thermal-zones { +-- +2.13.5 + +From 50252c318fe2fcfcbd0832fa835e7fd1fafd7d2d Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sun, 10 Sep 2017 19:30:02 +0100 +Subject: [PATCH 2/2] ARM: dts: bcm2837-rpi-3-b: Add bcm43438 serial slave + +Add BCM43438 (bluetooth) as a slave device of uart0 (pl011/ttyAMA0). +This allows to automatically insert the bcm43438 to the bluetooth +subsystem instead of relying on userspace helpers (hciattach). + +Overwrite chosen/stdout-path to use 8250 aux uart as console. + +Signed-off-by: Loic Poulain +Signed-off-by: Peter Robinson +--- + arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +index 20725ca487f3..e4488cb3067e 100644 +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +@@ -8,6 +8,11 @@ + compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; + model = "Raspberry Pi 3 Model B"; + ++ chosen { ++ /* 8250 auxiliar UART instead of pl011 */ ++ stdout-path = "serial1:115200n8"; ++ }; ++ + memory { + reg = <0 0x40000000>; + }; +@@ -24,6 +29,11 @@ + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; + status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm43438-bt"; ++ max-speed = <2000000>; ++ }; + }; + + /* uart1 is mapped to the pin header */ +-- +2.13.5 + diff --git a/bcm2837-move-dt.patch b/bcm2837-move-dt.patch new file mode 100644 index 000000000..018cf81d7 --- /dev/null +++ b/bcm2837-move-dt.patch @@ -0,0 +1,516 @@ +From 3bfe25fa9f8a56c5c877c7fd854d89238787c6d8 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Wed, 26 Jul 2017 13:01:56 -0700 +Subject: ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm. + +BCM2837 is somewhat unusual in that we build its DT on both arm32 and +arm64. Most devices are being run in arm32 mode. + +Having the body of the DT for 2837 separate from 2835/6 has been a +source of pain, as we often need to make changes that span both +directories simultaneously (for example, the thermal changes for 4.13, +or anything that changes the name of a node referenced by '&' from +board files). Other changes are made more complicated than they need +to be, such as the SDHOST enabling, because we have to split a single +logical change into a 283[56] half and a 2837 half. + +To fix this, make the stub board include file live in arm64 instead of +arm32, and keep all of BCM283x's contents in arm32. From here on, our +changes to DT contents can be submitted through a single tree. + +Signed-off-by: Eric Anholt +Signed-off-by: Florian Fainelli +--- + arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 42 ++++++++++- + arch/arm/boot/dts/bcm2837.dtsi | 86 ++++++++++++++++++++++ + arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi | 1 - + arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts | 42 +---------- + arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 86 ---------------------- + .../boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi | 1 - + .../boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi | 1 - + arch/arm64/boot/dts/broadcom/bcm283x.dtsi | 1 - + 8 files changed, 128 insertions(+), 132 deletions(-) + create mode 100644 arch/arm/boot/dts/bcm2837.dtsi + delete mode 120000 arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi + delete mode 100644 arch/arm64/boot/dts/broadcom/bcm2837.dtsi + delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi + delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi + delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x.dtsi + +diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +index c72a27d..972f14d 100644 +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +@@ -1 +1,41 @@ +-#include "arm64/broadcom/bcm2837-rpi-3-b.dts" ++/dts-v1/; ++#include "bcm2837.dtsi" ++#include "bcm2835-rpi.dtsi" ++#include "bcm283x-rpi-smsc9514.dtsi" ++#include "bcm283x-rpi-usb-host.dtsi" ++ ++/ { ++ compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; ++ model = "Raspberry Pi 3 Model B"; ++ ++ memory { ++ reg = <0 0x40000000>; ++ }; ++ ++ leds { ++ act { ++ gpios = <&gpio 47 0>; ++ }; ++ }; ++}; ++ ++&uart1 { ++ status = "okay"; ++}; ++ ++/* SDHCI is used to control the SDIO for wireless */ ++&sdhci { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&emmc_gpio34>; ++ status = "okay"; ++ bus-width = <4>; ++ non-removable; ++}; ++ ++/* SDHOST is used to drive the SD card */ ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ status = "okay"; ++ bus-width = <4>; ++}; +diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi +new file mode 100644 +index 0000000..2d5de6f0 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm2837.dtsi +@@ -0,0 +1,86 @@ ++#include "bcm283x.dtsi" ++ ++/ { ++ compatible = "brcm,bcm2837"; ++ ++ soc { ++ ranges = <0x7e000000 0x3f000000 0x1000000>, ++ <0x40000000 0x40000000 0x00001000>; ++ dma-ranges = <0xc0000000 0x00000000 0x3f000000>; ++ ++ local_intc: local_intc { ++ compatible = "brcm,bcm2836-l1-intc"; ++ reg = <0x40000000 0x100>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ interrupt-parent = <&local_intc>; ++ }; ++ }; ++ ++ timer { ++ compatible = "arm,armv7-timer"; ++ interrupt-parent = <&local_intc>; ++ interrupts = <0>, // PHYS_SECURE_PPI ++ <1>, // PHYS_NONSECURE_PPI ++ <3>, // VIRT_PPI ++ <2>; // HYP_PPI ++ always-on; ++ }; ++ ++ cpus: cpus { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ cpu0: cpu@0 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <0>; ++ enable-method = "spin-table"; ++ cpu-release-addr = <0x0 0x000000d8>; ++ }; ++ ++ cpu1: cpu@1 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <1>; ++ enable-method = "spin-table"; ++ cpu-release-addr = <0x0 0x000000e0>; ++ }; ++ ++ cpu2: cpu@2 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <2>; ++ enable-method = "spin-table"; ++ cpu-release-addr = <0x0 0x000000e8>; ++ }; ++ ++ cpu3: cpu@3 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a53"; ++ reg = <3>; ++ enable-method = "spin-table"; ++ cpu-release-addr = <0x0 0x000000f0>; ++ }; ++ }; ++}; ++ ++/* Make the BCM2835-style global interrupt controller be a child of the ++ * CPU-local interrupt controller. ++ */ ++&intc { ++ compatible = "brcm,bcm2836-armctrl-ic"; ++ reg = <0x7e00b200 0x200>; ++ interrupt-parent = <&local_intc>; ++ interrupts = <8>; ++}; ++ ++&cpu_thermal { ++ coefficients = <(-538) 412000>; ++}; ++ ++/* enable thermal sensor with the correct compatible property set */ ++&thermal { ++ compatible = "brcm,bcm2837-thermal"; ++ status = "okay"; ++}; +diff --git a/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi +deleted file mode 120000 +index 3937b77..0000000 +--- a/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi ++++ /dev/null +@@ -1 +0,0 @@ +-../../../../arm/boot/dts/bcm2835-rpi.dtsi +\ No newline at end of file +diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts +index 972f14d..699d340 100644 +--- a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts ++++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts +@@ -1,41 +1 @@ +-/dts-v1/; +-#include "bcm2837.dtsi" +-#include "bcm2835-rpi.dtsi" +-#include "bcm283x-rpi-smsc9514.dtsi" +-#include "bcm283x-rpi-usb-host.dtsi" +- +-/ { +- compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; +- model = "Raspberry Pi 3 Model B"; +- +- memory { +- reg = <0 0x40000000>; +- }; +- +- leds { +- act { +- gpios = <&gpio 47 0>; +- }; +- }; +-}; +- +-&uart1 { +- status = "okay"; +-}; +- +-/* SDHCI is used to control the SDIO for wireless */ +-&sdhci { +- pinctrl-names = "default"; +- pinctrl-0 = <&emmc_gpio34>; +- status = "okay"; +- bus-width = <4>; +- non-removable; +-}; +- +-/* SDHOST is used to drive the SD card */ +-&sdhost { +- pinctrl-names = "default"; +- pinctrl-0 = <&sdhost_gpio48>; +- status = "okay"; +- bus-width = <4>; +-}; ++#include "arm/bcm2837-rpi-3-b.dts" +diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi +deleted file mode 100644 +index 2d5de6f0..0000000 +--- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi ++++ /dev/null +@@ -1,86 +0,0 @@ +-#include "bcm283x.dtsi" +- +-/ { +- compatible = "brcm,bcm2837"; +- +- soc { +- ranges = <0x7e000000 0x3f000000 0x1000000>, +- <0x40000000 0x40000000 0x00001000>; +- dma-ranges = <0xc0000000 0x00000000 0x3f000000>; +- +- local_intc: local_intc { +- compatible = "brcm,bcm2836-l1-intc"; +- reg = <0x40000000 0x100>; +- interrupt-controller; +- #interrupt-cells = <1>; +- interrupt-parent = <&local_intc>; +- }; +- }; +- +- timer { +- compatible = "arm,armv7-timer"; +- interrupt-parent = <&local_intc>; +- interrupts = <0>, // PHYS_SECURE_PPI +- <1>, // PHYS_NONSECURE_PPI +- <3>, // VIRT_PPI +- <2>; // HYP_PPI +- always-on; +- }; +- +- cpus: cpus { +- #address-cells = <1>; +- #size-cells = <0>; +- +- cpu0: cpu@0 { +- device_type = "cpu"; +- compatible = "arm,cortex-a53"; +- reg = <0>; +- enable-method = "spin-table"; +- cpu-release-addr = <0x0 0x000000d8>; +- }; +- +- cpu1: cpu@1 { +- device_type = "cpu"; +- compatible = "arm,cortex-a53"; +- reg = <1>; +- enable-method = "spin-table"; +- cpu-release-addr = <0x0 0x000000e0>; +- }; +- +- cpu2: cpu@2 { +- device_type = "cpu"; +- compatible = "arm,cortex-a53"; +- reg = <2>; +- enable-method = "spin-table"; +- cpu-release-addr = <0x0 0x000000e8>; +- }; +- +- cpu3: cpu@3 { +- device_type = "cpu"; +- compatible = "arm,cortex-a53"; +- reg = <3>; +- enable-method = "spin-table"; +- cpu-release-addr = <0x0 0x000000f0>; +- }; +- }; +-}; +- +-/* Make the BCM2835-style global interrupt controller be a child of the +- * CPU-local interrupt controller. +- */ +-&intc { +- compatible = "brcm,bcm2836-armctrl-ic"; +- reg = <0x7e00b200 0x200>; +- interrupt-parent = <&local_intc>; +- interrupts = <8>; +-}; +- +-&cpu_thermal { +- coefficients = <(-538) 412000>; +-}; +- +-/* enable thermal sensor with the correct compatible property set */ +-&thermal { +- compatible = "brcm,bcm2837-thermal"; +- status = "okay"; +-}; +diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi +deleted file mode 120000 +index dca7c05..0000000 +--- a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi ++++ /dev/null +@@ -1 +0,0 @@ +-../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi +\ No newline at end of file +diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi +deleted file mode 120000 +index cbeebe3..0000000 +--- a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi ++++ /dev/null +@@ -1 +0,0 @@ +-../../../../arm/boot/dts/bcm283x-rpi-usb-host.dtsi +\ No newline at end of file +diff --git a/arch/arm64/boot/dts/broadcom/bcm283x.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x.dtsi +deleted file mode 120000 +index 5f54e4c..0000000 +--- a/arch/arm64/boot/dts/broadcom/bcm283x.dtsi ++++ /dev/null +@@ -1 +0,0 @@ +-../../../../arm/boot/dts/bcm283x.dtsi +\ No newline at end of file +-- +cgit v1.1 + +From 4188ea2aeb6dd8f99ab77662f463e41bc464a704 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sun, 30 Jul 2017 19:10:32 +0200 +Subject: ARM: bcm283x: Define UART pinmuxing on board level + +Until RPI 3 and Zero W the pl011 (uart0) was always on pin 14/15. So in +order to take care of them and other boards in the future, +we need to define UART pinmuxing on board level. + +This work based on Eric Anholt's patch "ARM: bcm2385: Don't force pl011 +onto pins 14/15." and Fabian Vogt's patch "ARM64: dts: bcm2837: assign +uart0 to BT and uart1 to pin headers". + +Signed-off-by: Stefan Wahren +Reviewed-by: Eric Anholt +Signed-off-by: Eric Anholt +--- + arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 6 ++++++ + arch/arm/boot/dts/bcm2835-rpi-a.dts | 6 ++++++ + arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 6 ++++++ + arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 6 ++++++ + arch/arm/boot/dts/bcm2835-rpi-b.dts | 6 ++++++ + arch/arm/boot/dts/bcm2835-rpi-zero.dts | 6 ++++++ + arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +- + arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 6 ++++++ + arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 10 ++++++++++ + 9 files changed, 53 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +index d070454..9f86649 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +@@ -99,3 +99,9 @@ + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi-a.dts b/arch/arm/boot/dts/bcm2835-rpi-a.dts +index 46d078e..4b1af06 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts +@@ -94,3 +94,9 @@ + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; + }; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +index 432088e..a846f1e 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +@@ -101,3 +101,9 @@ + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +index 4133bc2..e860964 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +@@ -94,3 +94,9 @@ + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts +index 4d56fe3..5d77f3f 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts +@@ -89,3 +89,9 @@ + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; + }; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero.dts b/arch/arm/boot/dts/bcm2835-rpi-zero.dts +index 79a20d5..7036240 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts +@@ -103,3 +103,9 @@ + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi +index e55b362..e36c392 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi +@@ -39,7 +39,7 @@ + }; + + alt0: alt0 { +- brcm,pins = <4 5 7 8 9 10 11 14 15>; ++ brcm,pins = <4 5 7 8 9 10 11>; + brcm,function = ; + }; + }; +diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts +index bf19e8c..e8de414 100644 +--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts ++++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts +@@ -39,3 +39,9 @@ + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +index 972f14d..20725ca 100644 +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +@@ -19,7 +19,17 @@ + }; + }; + ++/* uart0 communicates with the BT module */ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; ++ status = "okay"; ++}; ++ ++/* uart1 is mapped to the pin header */ + &uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart1_gpio14>; + status = "okay"; + }; + +-- +cgit v1.1 + diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 6fc8e76f5..438df063c 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -1014,6 +1014,7 @@ CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM64_CE=m +CONFIG_CRYPTO_GHASH_ARM_CE=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y @@ -1319,7 +1320,6 @@ CONFIG_DRM_SIL_SII8620=m # CONFIG_DRM_SIS is not set # CONFIG_DRM_STM is not set CONFIG_DRM_SUN4I_BACKEND=m -CONFIG_DRM_SUN4I_HDMI=m CONFIG_DRM_SUN8I_MIXER=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_TEGRA_DEBUG is not set @@ -3102,11 +3102,10 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m -CONFIG_MMC=m CONFIG_MMC_MESON_GX=m # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m -# CONFIG_MMC_QCOM_DML is not set +CONFIG_MMC_QCOM_DML=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3119,7 +3118,6 @@ CONFIG_MMC_SDHCI_MSM=m CONFIG_MMC_SDHCI_OF_ARASAN=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_PXAV3=m @@ -3136,6 +3134,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_WBSD=m +CONFIG_MMC=y CONFIG_MMIOTRACE=y CONFIG_MMU=y # CONFIG_MODULE_COMPRESS is not set @@ -4173,9 +4172,9 @@ CONFIG_PWM_SUN4I=m CONFIG_PWM_SYSFS=y CONFIG_PWM_TEGRA=m CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set -CONFIG_PWRSEQ_SIMPLE=m +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SD8787=m +CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set diff --git a/kernel-aarch64.config b/kernel-aarch64.config index ff26f1ace..9b8bbd4a4 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -1013,6 +1013,7 @@ CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM64_CE=m +CONFIG_CRYPTO_GHASH_ARM_CE=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y @@ -1309,7 +1310,6 @@ CONFIG_DRM_SIL_SII8620=m # CONFIG_DRM_SIS is not set # CONFIG_DRM_STM is not set CONFIG_DRM_SUN4I_BACKEND=m -CONFIG_DRM_SUN4I_HDMI=m CONFIG_DRM_SUN8I_MIXER=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_TEGRA_DEBUG is not set @@ -3082,11 +3082,10 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m -CONFIG_MMC=m CONFIG_MMC_MESON_GX=m # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m -# CONFIG_MMC_QCOM_DML is not set +CONFIG_MMC_QCOM_DML=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3099,7 +3098,6 @@ CONFIG_MMC_SDHCI_MSM=m CONFIG_MMC_SDHCI_OF_ARASAN=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_PXAV3=m @@ -3116,6 +3114,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_WBSD=m +CONFIG_MMC=y CONFIG_MMU=y # CONFIG_MODULE_COMPRESS is not set # CONFIG_MODULE_FORCE_LOAD is not set @@ -4151,9 +4150,9 @@ CONFIG_PWM_SUN4I=m CONFIG_PWM_SYSFS=y CONFIG_PWM_TEGRA=m CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set -CONFIG_PWRSEQ_SIMPLE=m +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SD8787=m +CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 96dd0ac81..0187d8cbb 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -1068,7 +1068,7 @@ CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_GF128MUL=y -# CONFIG_CRYPTO_GHASH_ARM_CE is not set +CONFIG_CRYPTO_GHASH_ARM_CE=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y @@ -3304,7 +3304,6 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m -CONFIG_MMC=m # CONFIG_MMC_MESON_GX is not set # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m @@ -3325,8 +3324,7 @@ CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_MSM=m CONFIG_MMC_SDHCI_OF_ARASAN=m # CONFIG_MMC_SDHCI_OF_AT91 is not set -# CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set +CONFIG_MMC_SDHCI_OF_ESDHC=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_PXAV2=m @@ -3348,6 +3346,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_WBSD=m +CONFIG_MMC=y CONFIG_MMIOTRACE=y CONFIG_MMP_PDMA=y CONFIG_MMP_TDMA=y @@ -4494,9 +4493,9 @@ CONFIG_PWM_TIPWMSS=y CONFIG_PWM_TWL_LED=m CONFIG_PWM_TWL=m CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set -CONFIG_PWRSEQ_SIMPLE=m +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SD8787=m +CONFIG_PWRSEQ_SIMPLE=y CONFIG_PXA_DMA=y # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 1977b34f3..03c99aec4 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -1017,7 +1017,7 @@ CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_GF128MUL=y -# CONFIG_CRYPTO_GHASH_ARM_CE is not set +CONFIG_CRYPTO_GHASH_ARM_CE=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y @@ -3158,12 +3158,11 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m -CONFIG_MMC=m # CONFIG_MMC_MESON_GX is not set # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m CONFIG_MMC_OMAP_HS=m -# CONFIG_MMC_QCOM_DML is not set +CONFIG_MMC_QCOM_DML=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3176,7 +3175,6 @@ CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_OF_ARASAN=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_PXAV3=m @@ -3196,6 +3194,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_WBSD=m +CONFIG_MMC=y CONFIG_MMIOTRACE=y CONFIG_MMU=y # CONFIG_MODULE_COMPRESS is not set @@ -4245,9 +4244,9 @@ CONFIG_PWM_SUN4I=m CONFIG_PWM_SYSFS=y CONFIG_PWM_TEGRA=m CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set -CONFIG_PWRSEQ_SIMPLE=m +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SD8787=m +CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index 8e9374768..3ac1bd2b6 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -1015,7 +1015,7 @@ CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_GF128MUL=y -# CONFIG_CRYPTO_GHASH_ARM_CE is not set +CONFIG_CRYPTO_GHASH_ARM_CE=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y @@ -3138,12 +3138,11 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m -CONFIG_MMC=m # CONFIG_MMC_MESON_GX is not set # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m CONFIG_MMC_OMAP_HS=m -# CONFIG_MMC_QCOM_DML is not set +CONFIG_MMC_QCOM_DML=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3156,7 +3155,6 @@ CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_OF_ARASAN=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_PXAV3=m @@ -3176,6 +3174,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_WBSD=m +CONFIG_MMC=y CONFIG_MMU=y # CONFIG_MODULE_COMPRESS is not set # CONFIG_MODULE_FORCE_LOAD is not set @@ -4223,9 +4222,9 @@ CONFIG_PWM_SUN4I=m CONFIG_PWM_SYSFS=y CONFIG_PWM_TEGRA=m CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set -CONFIG_PWRSEQ_SIMPLE=m +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SD8787=m +CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 852fdead3..eef755f6a 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -1066,7 +1066,7 @@ CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_GF128MUL=y -# CONFIG_CRYPTO_GHASH_ARM_CE is not set +CONFIG_CRYPTO_GHASH_ARM_CE=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y @@ -3284,7 +3284,6 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m -CONFIG_MMC=m # CONFIG_MMC_MESON_GX is not set # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m @@ -3305,8 +3304,7 @@ CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_MSM=m CONFIG_MMC_SDHCI_OF_ARASAN=m # CONFIG_MMC_SDHCI_OF_AT91 is not set -# CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set +CONFIG_MMC_SDHCI_OF_ESDHC=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_PXAV2=m @@ -3328,6 +3326,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_WBSD=m +CONFIG_MMC=y CONFIG_MMP_PDMA=y CONFIG_MMP_TDMA=y CONFIG_MMU=y @@ -4472,9 +4471,9 @@ CONFIG_PWM_TIPWMSS=y CONFIG_PWM_TWL_LED=m CONFIG_PWM_TWL=m CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set -CONFIG_PWRSEQ_SIMPLE=m +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SD8787=m +CONFIG_PWRSEQ_SIMPLE=y CONFIG_PXA_DMA=y # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 52a2c1ca9..4f8f7fdb9 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -3001,7 +3001,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -4000,7 +3999,7 @@ CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index ef80c5812..098c8dc37 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -3021,7 +3021,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -4021,7 +4020,7 @@ CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index c01104593..c960be760 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -3021,7 +3021,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -4021,7 +4020,7 @@ CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-i686.config b/kernel-i686.config index 1b92c6a49..5e77c7016 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -3001,7 +3001,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -4000,7 +3999,7 @@ CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index da5951c32..d51eebc58 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -2864,7 +2864,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set # CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3837,7 +3836,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-ppc64.config b/kernel-ppc64.config index 4df97c451..46bb44a1b 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -2843,7 +2843,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set # CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3814,7 +3813,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 9171912e9..75787145e 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -92,7 +92,6 @@ CONFIG_AD7766=m # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set CONFIG_ADAPTEC_STARFIRE=m -CONFIG_ADB_PMU_LED_DISK=y # CONFIG_ADE7753 is not set # CONFIG_ADE7754 is not set # CONFIG_ADE7758 is not set @@ -2810,7 +2809,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set # CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3777,7 +3775,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 95ce5a0ee..7fc5ca96f 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -92,7 +92,6 @@ CONFIG_AD7766=m # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set CONFIG_ADAPTEC_STARFIRE=m -CONFIG_ADB_PMU_LED_DISK=y # CONFIG_ADE7753 is not set # CONFIG_ADE7754 is not set # CONFIG_ADE7758 is not set @@ -2789,7 +2788,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set # CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3754,7 +3752,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config index ad638cfee..6b2d0ea01 100644 --- a/kernel-ppc64p7-debug.config +++ b/kernel-ppc64p7-debug.config @@ -92,7 +92,6 @@ CONFIG_AD7766=m # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set CONFIG_ADAPTEC_STARFIRE=m -CONFIG_ADB_PMU_LED_DISK=y # CONFIG_ADE7753 is not set # CONFIG_ADE7754 is not set # CONFIG_ADE7758 is not set @@ -2809,7 +2808,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set # CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3776,7 +3774,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config index bd49c9e70..3444a6323 100644 --- a/kernel-ppc64p7.config +++ b/kernel-ppc64p7.config @@ -92,7 +92,6 @@ CONFIG_AD7766=m # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set CONFIG_ADAPTEC_STARFIRE=m -CONFIG_ADB_PMU_LED_DISK=y # CONFIG_ADE7753 is not set # CONFIG_ADE7754 is not set # CONFIG_ADE7758 is not set @@ -2788,7 +2787,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set # CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3753,7 +3751,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 0b5805b96..c46c8e88a 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -2746,7 +2746,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3665,7 +3664,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM is not set # CONFIG_PWM_PCA9685 is not set CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index 350349484..21f70f71c 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -2725,7 +2725,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -3642,7 +3641,7 @@ CONFIG_PWM_HIBVT=m # CONFIG_PWM is not set # CONFIG_PWM_PCA9685 is not set CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index e6fbdb4aa..f5fdc7629 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -3067,7 +3067,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -4057,7 +4056,7 @@ CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel-x86_64.config b/kernel-x86_64.config index e33386a98..c8334ad5e 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -3047,7 +3047,6 @@ CONFIG_MMC_SDHCI=m # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF is not set CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_XENON=m @@ -4036,7 +4035,7 @@ CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=m -# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SD8787=m CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set diff --git a/kernel.spec b/kernel.spec index 3a9a27810..1c739b9bc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 300 +%global baserelease 301 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -621,9 +621,12 @@ Patch320: bcm283x-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ Patch321: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch -# This breaks RPi booting with a LPAE kernel, we don't support the DSI ports currently -# Revert it while I engage upstream to work out what's going on -Patch322: Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch +# Updat3 move of bcm2837, landed in 4.14 +Patch322: bcm2837-move-dt.patch + +# bcm2837 bluetooth support +# +Patch323: bcm2837-bluetooth-support.patch # 400 - IBM (ppc/s390x) patches @@ -2204,6 +2207,10 @@ fi # # %changelog +* Sun Sep 10 2017 Peter Robinson 4.13.1-301 +- Raspberry Pi serial console fixes, minor other Pi improvements +- Various ARM cleanups, build mmc/pwrseq non modular + * Sun Sep 10 2017 Laura Abbott - 4.13.1-300 - Linux v4.13.1 From 77bac469cfa0e059710192b948720111197f979f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 12 Sep 2017 10:00:22 +0100 Subject: [PATCH 005/289] Disable debugging options. --- kernel.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 1c739b9bc..59d16bf8d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 301 +%global baserelease 302 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -125,7 +125,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -2207,6 +2207,9 @@ fi # # %changelog +* Tue Sep 12 2017 Peter Robinson 4.13.1-302 +- Disable debugging options. + * Sun Sep 10 2017 Peter Robinson 4.13.1-301 - Raspberry Pi serial console fixes, minor other Pi improvements - Various ARM cleanups, build mmc/pwrseq non modular From eecd41d126b849f125ea67ff81ea85b578cbb5f4 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 12 Sep 2017 23:09:46 +0100 Subject: [PATCH 006/289] Fix issue with DMA allocation with some device configurations --- arm-of-restrict-dma-configuration.patch | 121 ++++++++++++++++++++++++ kernel.spec | 6 ++ 2 files changed, 127 insertions(+) create mode 100644 arm-of-restrict-dma-configuration.patch diff --git a/arm-of-restrict-dma-configuration.patch b/arm-of-restrict-dma-configuration.patch new file mode 100644 index 000000000..cc9ddd965 --- /dev/null +++ b/arm-of-restrict-dma-configuration.patch @@ -0,0 +1,121 @@ +From 723288836628bc1c0855f3bb7b64b1803e4b9e4a Mon Sep 17 00:00:00 2001 +From: Robin Murphy +Date: Thu, 31 Aug 2017 11:32:54 +0100 +Subject: of: restrict DMA configuration + +Moving DMA configuration to happen later at driver probe time had the +unnoticed side-effect that we now perform DMA configuration for *every* +device represented in DT, rather than only those explicitly created by +the of_platform and PCI code. + +As Christoph points out, this is not really the best thing to do. Whilst +there may well be other DMA-capable buses that can benefit from having +their children automatically configured after the bridge has probed, +there are also plenty of others like USB, MDIO, etc. that definitely do +not support DMA and should not be indiscriminately processed. + +The good news is that in most cases the DT "dma-ranges" property serves +as an appropriate indicator - per a strict interpretation of the spec, +anything lacking a "dma-ranges" property should be considered not to +have a mapping of DMA address space from its children to its parent, +thus anything for which of_dma_get_range() does not succeed does not +need DMA configuration. Certain bus types have a general expectation of +DMA capability and carry a well-established precedent that an absent +"dma-ranges" implies the same as the empty property, so we automatically +opt those in to DMA configuration regardless, to avoid regressing most +existing platforms. + +Fixes: 09515ef5ddad ("of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices") +Reported-by: Christoph Hellwig +Signed-off-by: Robin Murphy +Acked-by: Rob Herring +Signed-off-by: Christoph Hellwig +--- + drivers/of/device.c | 48 ++++++++++++++++++++++++++++++++---------------- + 1 file changed, 32 insertions(+), 16 deletions(-) + +diff --git a/drivers/of/device.c b/drivers/of/device.c +index e0a28ea..04c4c95 100644 +--- a/drivers/of/device.c ++++ b/drivers/of/device.c +@@ -9,6 +9,9 @@ + #include + #include + #include ++#include ++#include ++#include + + #include + #include "of_private.h" +@@ -84,31 +87,28 @@ int of_device_add(struct platform_device *ofdev) + */ + int of_dma_configure(struct device *dev, struct device_node *np) + { +- u64 dma_addr, paddr, size; ++ u64 dma_addr, paddr, size = 0; + int ret; + bool coherent; + unsigned long offset; + const struct iommu_ops *iommu; + u64 mask; + +- /* +- * Set default coherent_dma_mask to 32 bit. Drivers are expected to +- * setup the correct supported mask. +- */ +- if (!dev->coherent_dma_mask) +- dev->coherent_dma_mask = DMA_BIT_MASK(32); +- +- /* +- * Set it to coherent_dma_mask by default if the architecture +- * code has not set it. +- */ +- if (!dev->dma_mask) +- dev->dma_mask = &dev->coherent_dma_mask; +- + ret = of_dma_get_range(np, &dma_addr, &paddr, &size); + if (ret < 0) { ++ /* ++ * For legacy reasons, we have to assume some devices need ++ * DMA configuration regardless of whether "dma-ranges" is ++ * correctly specified or not. ++ */ ++ if (!dev_is_pci(dev) && ++#ifdef CONFIG_ARM_AMBA ++ dev->bus != &amba_bustype && ++#endif ++ dev->bus != &platform_bus_type) ++ return ret == -ENODEV ? 0 : ret; ++ + dma_addr = offset = 0; +- size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1); + } else { + offset = PFN_DOWN(paddr - dma_addr); + +@@ -129,6 +129,22 @@ int of_dma_configure(struct device *dev, struct device_node *np) + dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset); + } + ++ /* ++ * Set default coherent_dma_mask to 32 bit. Drivers are expected to ++ * setup the correct supported mask. ++ */ ++ if (!dev->coherent_dma_mask) ++ dev->coherent_dma_mask = DMA_BIT_MASK(32); ++ /* ++ * Set it to coherent_dma_mask by default if the architecture ++ * code has not set it. ++ */ ++ if (!dev->dma_mask) ++ dev->dma_mask = &dev->coherent_dma_mask; ++ ++ if (!size) ++ size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1); ++ + dev->dma_pfn_offset = offset; + + /* +-- +cgit v1.1 + diff --git a/kernel.spec b/kernel.spec index 59d16bf8d..6861b4fef 100644 --- a/kernel.spec +++ b/kernel.spec @@ -628,6 +628,9 @@ Patch322: bcm2837-move-dt.patch # Patch323: bcm2837-bluetooth-support.patch +# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20170912&id=723288836628bc1c0855f3bb7b64b1803e4b9e4a +Patch324: arm-of-restrict-dma-configuration.patch + # 400 - IBM (ppc/s390x) patches # 500 - Temp fixes/CVEs etc @@ -2207,6 +2210,9 @@ fi # # %changelog +* Tue Sep 12 2017 Peter Robinson +- Fix issue with DMA allocation with some device configurations + * Tue Sep 12 2017 Peter Robinson 4.13.1-302 - Disable debugging options. From b1def384fa4ab1fd8d385b4f6e691bae6ff10045 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 13 Sep 2017 14:15:37 -0700 Subject: [PATCH 007/289] Fix CVE-2017-12154 CVE-2017-12153 CVE-2017-1000251 --- ...p-config-option-output-buffer-length.patch | 357 ++++++++++++++++++ kernel.spec | 14 + ...-allow-L2-to-access-the-hardware-CR8.patch | 41 ++ ...required-netlink-attributes-presence.patch | 46 +++ 4 files changed, 458 insertions(+) create mode 100644 bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch create mode 100644 kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch create mode 100644 nl80211-check-for-the-required-netlink-attributes-presence.patch diff --git a/bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch b/bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch new file mode 100644 index 000000000..fe18f57ca --- /dev/null +++ b/bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch @@ -0,0 +1,357 @@ +From e860d2c904d1a9f38a24eb44c9f34b8f915a6ea3 Mon Sep 17 00:00:00 2001 +From: Ben Seri +Date: Sat, 9 Sep 2017 23:15:59 +0200 +Subject: Bluetooth: Properly check L2CAP config option output buffer length + +From: Ben Seri + +commit e860d2c904d1a9f38a24eb44c9f34b8f915a6ea3 upstream. + +Validate the output buffer length for L2CAP config requests and responses +to avoid overflowing the stack buffer used for building the option blocks. + +Signed-off-by: Ben Seri +Signed-off-by: Marcel Holtmann +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/l2cap_core.c | 80 ++++++++++++++++++++++++--------------------- + 1 file changed, 43 insertions(+), 37 deletions(-) + +--- a/net/bluetooth/l2cap_core.c ++++ b/net/bluetooth/l2cap_core.c +@@ -58,7 +58,7 @@ static struct sk_buff *l2cap_build_cmd(s + u8 code, u8 ident, u16 dlen, void *data); + static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len, + void *data); +-static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data); ++static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size); + static void l2cap_send_disconn_req(struct l2cap_chan *chan, int err); + + static void l2cap_tx(struct l2cap_chan *chan, struct l2cap_ctrl *control, +@@ -1473,7 +1473,7 @@ static void l2cap_conn_start(struct l2ca + + set_bit(CONF_REQ_SENT, &chan->conf_state); + l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, +- l2cap_build_conf_req(chan, buf), buf); ++ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); + chan->num_conf_req++; + } + +@@ -2987,12 +2987,15 @@ static inline int l2cap_get_conf_opt(voi + return len; + } + +-static void l2cap_add_conf_opt(void **ptr, u8 type, u8 len, unsigned long val) ++static void l2cap_add_conf_opt(void **ptr, u8 type, u8 len, unsigned long val, size_t size) + { + struct l2cap_conf_opt *opt = *ptr; + + BT_DBG("type 0x%2.2x len %u val 0x%lx", type, len, val); + ++ if (size < L2CAP_CONF_OPT_SIZE + len) ++ return; ++ + opt->type = type; + opt->len = len; + +@@ -3017,7 +3020,7 @@ static void l2cap_add_conf_opt(void **pt + *ptr += L2CAP_CONF_OPT_SIZE + len; + } + +-static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan) ++static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan, size_t size) + { + struct l2cap_conf_efs efs; + +@@ -3045,7 +3048,7 @@ static void l2cap_add_opt_efs(void **ptr + } + + l2cap_add_conf_opt(ptr, L2CAP_CONF_EFS, sizeof(efs), +- (unsigned long) &efs); ++ (unsigned long) &efs, size); + } + + static void l2cap_ack_timeout(struct work_struct *work) +@@ -3191,11 +3194,12 @@ static inline void l2cap_txwin_setup(str + chan->ack_win = chan->tx_win; + } + +-static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data) ++static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size) + { + struct l2cap_conf_req *req = data; + struct l2cap_conf_rfc rfc = { .mode = chan->mode }; + void *ptr = req->data; ++ void *endptr = data + data_size; + u16 size; + + BT_DBG("chan %p", chan); +@@ -3220,7 +3224,7 @@ static int l2cap_build_conf_req(struct l + + done: + if (chan->imtu != L2CAP_DEFAULT_MTU) +- l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu); ++ l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu, endptr - ptr); + + switch (chan->mode) { + case L2CAP_MODE_BASIC: +@@ -3239,7 +3243,7 @@ done: + rfc.max_pdu_size = 0; + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), +- (unsigned long) &rfc); ++ (unsigned long) &rfc, endptr - ptr); + break; + + case L2CAP_MODE_ERTM: +@@ -3259,21 +3263,21 @@ done: + L2CAP_DEFAULT_TX_WINDOW); + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), +- (unsigned long) &rfc); ++ (unsigned long) &rfc, endptr - ptr); + + if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) +- l2cap_add_opt_efs(&ptr, chan); ++ l2cap_add_opt_efs(&ptr, chan, endptr - ptr); + + if (test_bit(FLAG_EXT_CTRL, &chan->flags)) + l2cap_add_conf_opt(&ptr, L2CAP_CONF_EWS, 2, +- chan->tx_win); ++ chan->tx_win, endptr - ptr); + + if (chan->conn->feat_mask & L2CAP_FEAT_FCS) + if (chan->fcs == L2CAP_FCS_NONE || + test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) { + chan->fcs = L2CAP_FCS_NONE; + l2cap_add_conf_opt(&ptr, L2CAP_CONF_FCS, 1, +- chan->fcs); ++ chan->fcs, endptr - ptr); + } + break; + +@@ -3291,17 +3295,17 @@ done: + rfc.max_pdu_size = cpu_to_le16(size); + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), +- (unsigned long) &rfc); ++ (unsigned long) &rfc, endptr - ptr); + + if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) +- l2cap_add_opt_efs(&ptr, chan); ++ l2cap_add_opt_efs(&ptr, chan, endptr - ptr); + + if (chan->conn->feat_mask & L2CAP_FEAT_FCS) + if (chan->fcs == L2CAP_FCS_NONE || + test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) { + chan->fcs = L2CAP_FCS_NONE; + l2cap_add_conf_opt(&ptr, L2CAP_CONF_FCS, 1, +- chan->fcs); ++ chan->fcs, endptr - ptr); + } + break; + } +@@ -3312,10 +3316,11 @@ done: + return ptr - data; + } + +-static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data) ++static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data_size) + { + struct l2cap_conf_rsp *rsp = data; + void *ptr = rsp->data; ++ void *endptr = data + data_size; + void *req = chan->conf_req; + int len = chan->conf_len; + int type, hint, olen; +@@ -3417,7 +3422,7 @@ done: + return -ECONNREFUSED; + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), +- (unsigned long) &rfc); ++ (unsigned long) &rfc, endptr - ptr); + } + + if (result == L2CAP_CONF_SUCCESS) { +@@ -3430,7 +3435,7 @@ done: + chan->omtu = mtu; + set_bit(CONF_MTU_DONE, &chan->conf_state); + } +- l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->omtu); ++ l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->omtu, endptr - ptr); + + if (remote_efs) { + if (chan->local_stype != L2CAP_SERV_NOTRAFIC && +@@ -3444,7 +3449,7 @@ done: + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS, + sizeof(efs), +- (unsigned long) &efs); ++ (unsigned long) &efs, endptr - ptr); + } else { + /* Send PENDING Conf Rsp */ + result = L2CAP_CONF_PENDING; +@@ -3477,7 +3482,7 @@ done: + set_bit(CONF_MODE_DONE, &chan->conf_state); + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, +- sizeof(rfc), (unsigned long) &rfc); ++ sizeof(rfc), (unsigned long) &rfc, endptr - ptr); + + if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) { + chan->remote_id = efs.id; +@@ -3491,7 +3496,7 @@ done: + le32_to_cpu(efs.sdu_itime); + l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS, + sizeof(efs), +- (unsigned long) &efs); ++ (unsigned long) &efs, endptr - ptr); + } + break; + +@@ -3505,7 +3510,7 @@ done: + set_bit(CONF_MODE_DONE, &chan->conf_state); + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), +- (unsigned long) &rfc); ++ (unsigned long) &rfc, endptr - ptr); + + break; + +@@ -3527,10 +3532,11 @@ done: + } + + static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len, +- void *data, u16 *result) ++ void *data, size_t size, u16 *result) + { + struct l2cap_conf_req *req = data; + void *ptr = req->data; ++ void *endptr = data + size; + int type, olen; + unsigned long val; + struct l2cap_conf_rfc rfc = { .mode = L2CAP_MODE_BASIC }; +@@ -3548,13 +3554,13 @@ static int l2cap_parse_conf_rsp(struct l + chan->imtu = L2CAP_DEFAULT_MIN_MTU; + } else + chan->imtu = val; +- l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu); ++ l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu, endptr - ptr); + break; + + case L2CAP_CONF_FLUSH_TO: + chan->flush_to = val; + l2cap_add_conf_opt(&ptr, L2CAP_CONF_FLUSH_TO, +- 2, chan->flush_to); ++ 2, chan->flush_to, endptr - ptr); + break; + + case L2CAP_CONF_RFC: +@@ -3568,13 +3574,13 @@ static int l2cap_parse_conf_rsp(struct l + chan->fcs = 0; + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, +- sizeof(rfc), (unsigned long) &rfc); ++ sizeof(rfc), (unsigned long) &rfc, endptr - ptr); + break; + + case L2CAP_CONF_EWS: + chan->ack_win = min_t(u16, val, chan->ack_win); + l2cap_add_conf_opt(&ptr, L2CAP_CONF_EWS, 2, +- chan->tx_win); ++ chan->tx_win, endptr - ptr); + break; + + case L2CAP_CONF_EFS: +@@ -3587,7 +3593,7 @@ static int l2cap_parse_conf_rsp(struct l + return -ECONNREFUSED; + + l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS, sizeof(efs), +- (unsigned long) &efs); ++ (unsigned long) &efs, endptr - ptr); + break; + + case L2CAP_CONF_FCS: +@@ -3692,7 +3698,7 @@ void __l2cap_connect_rsp_defer(struct l2 + return; + + l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, +- l2cap_build_conf_req(chan, buf), buf); ++ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); + chan->num_conf_req++; + } + +@@ -3900,7 +3906,7 @@ sendresp: + u8 buf[128]; + set_bit(CONF_REQ_SENT, &chan->conf_state); + l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, +- l2cap_build_conf_req(chan, buf), buf); ++ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); + chan->num_conf_req++; + } + +@@ -3978,7 +3984,7 @@ static int l2cap_connect_create_rsp(stru + break; + + l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, +- l2cap_build_conf_req(chan, req), req); ++ l2cap_build_conf_req(chan, req, sizeof(req)), req); + chan->num_conf_req++; + break; + +@@ -4090,7 +4096,7 @@ static inline int l2cap_config_req(struc + } + + /* Complete config. */ +- len = l2cap_parse_conf_req(chan, rsp); ++ len = l2cap_parse_conf_req(chan, rsp, sizeof(rsp)); + if (len < 0) { + l2cap_send_disconn_req(chan, ECONNRESET); + goto unlock; +@@ -4124,7 +4130,7 @@ static inline int l2cap_config_req(struc + if (!test_and_set_bit(CONF_REQ_SENT, &chan->conf_state)) { + u8 buf[64]; + l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, +- l2cap_build_conf_req(chan, buf), buf); ++ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); + chan->num_conf_req++; + } + +@@ -4184,7 +4190,7 @@ static inline int l2cap_config_rsp(struc + char buf[64]; + + len = l2cap_parse_conf_rsp(chan, rsp->data, len, +- buf, &result); ++ buf, sizeof(buf), &result); + if (len < 0) { + l2cap_send_disconn_req(chan, ECONNRESET); + goto done; +@@ -4214,7 +4220,7 @@ static inline int l2cap_config_rsp(struc + /* throw out any old stored conf requests */ + result = L2CAP_CONF_SUCCESS; + len = l2cap_parse_conf_rsp(chan, rsp->data, len, +- req, &result); ++ req, sizeof(req), &result); + if (len < 0) { + l2cap_send_disconn_req(chan, ECONNRESET); + goto done; +@@ -4791,7 +4797,7 @@ static void l2cap_do_create(struct l2cap + set_bit(CONF_REQ_SENT, &chan->conf_state); + l2cap_send_cmd(chan->conn, l2cap_get_ident(chan->conn), + L2CAP_CONF_REQ, +- l2cap_build_conf_req(chan, buf), buf); ++ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); + chan->num_conf_req++; + } + } +@@ -7465,7 +7471,7 @@ static void l2cap_security_cfm(struct hc + set_bit(CONF_REQ_SENT, &chan->conf_state); + l2cap_send_cmd(conn, l2cap_get_ident(conn), + L2CAP_CONF_REQ, +- l2cap_build_conf_req(chan, buf), ++ l2cap_build_conf_req(chan, buf, sizeof(buf)), + buf); + chan->num_conf_req++; + } diff --git a/kernel.spec b/kernel.spec index 6861b4fef..8d1549345 100644 --- a/kernel.spec +++ b/kernel.spec @@ -656,6 +656,15 @@ Patch617: Fix-for-module-sig-verification.patch # rhbz 1485086 Patch619: pci-mark-amd-stoney-gpu-ats-as-broken.patch +# CVE-2017-12154 rhbz 1491224 1491231 +Patch620: kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch + +# CVE-2017-12153 rhbz 1491046 1491057 +Patch621: nl80211-check-for-the-required-netlink-attributes-presence.patch + +# CVE-2017-1000251 rhbz 1489716 1490906 +Patch622: bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch + # END OF PATCH DEFINITIONS %endif @@ -2210,6 +2219,11 @@ fi # # %changelog +* Wed Sep 13 2017 Justin M. Forbes +- Fix CVE-2017-12154 (rhbz 1491224 1491231) +- Fix CVE-2017-12153 (rhbz 1491046 1491057) +- Fix CVE-2017-1000251 (rhbz 1489716 1490906) + * Tue Sep 12 2017 Peter Robinson - Fix issue with DMA allocation with some device configurations diff --git a/kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch b/kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch new file mode 100644 index 000000000..978401257 --- /dev/null +++ b/kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch @@ -0,0 +1,41 @@ +From patchwork Tue Sep 12 20:02:54 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: kvm: nVMX: Don't allow L2 to access the hardware CR8 +From: Jim Mattson +X-Patchwork-Id: 9950035 +Message-Id: <20170912200254.111560-1-jmattson@google.com> +To: kvm@vger.kernel.org, P J P , + Paolo Bonzini +Cc: Jim Mattson +Date: Tue, 12 Sep 2017 13:02:54 -0700 + +If L1 does not specify the "use TPR shadow" VM-execution control in +vmcs12, then L0 must specify the "CR8-load exiting" and "CR8-store +exiting" VM-execution controls in vmcs02. Failure to do so will give +the L2 VM unrestricted read/write access to the hardware CR8. + +This fixes CVE-2017-12154. + +Signed-off-by: Jim Mattson +--- + arch/x86/kvm/vmx.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c +index c6efc1f88b25..885b7eed4320 100644 +--- a/arch/x86/kvm/vmx.c ++++ b/arch/x86/kvm/vmx.c +@@ -10525,6 +10525,11 @@ static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12, + if (exec_control & CPU_BASED_TPR_SHADOW) { + vmcs_write64(VIRTUAL_APIC_PAGE_ADDR, -1ull); + vmcs_write32(TPR_THRESHOLD, vmcs12->tpr_threshold); ++ } else { ++#ifdef CONFIG_X86_64 ++ exec_control |= CPU_BASED_CR8_LOAD_EXITING | ++ CPU_BASED_CR8_STORE_EXITING; ++#endif + } + + /* diff --git a/nl80211-check-for-the-required-netlink-attributes-presence.patch b/nl80211-check-for-the-required-netlink-attributes-presence.patch new file mode 100644 index 000000000..3b52fae87 --- /dev/null +++ b/nl80211-check-for-the-required-netlink-attributes-presence.patch @@ -0,0 +1,46 @@ +From patchwork Tue Sep 12 22:21:21 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: nl80211: check for the required netlink attributes presence +From: Vladis Dronov +X-Patchwork-Id: 9950281 +Message-Id: <20170912222121.5032-1-vdronov@redhat.com> +To: Johannes Berg , + Johannes Berg , + linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org +Cc: Vladis Dronov , "# v3 . 1-rc1" +Date: Wed, 13 Sep 2017 00:21:21 +0200 + +nl80211_set_rekey_data() does not check if the required attributes +NL80211_REKEY_DATA_{REPLAY_CTR,KEK,KCK} are present when processing +NL80211_CMD_SET_REKEY_OFFLOAD request. This request can be issued by +users with CAP_NET_ADMIN privilege and may result in NULL dereference +and a system crash. Add a check for the required attributes presence. +This patch is based on the patch by bo Zhang. + +This fixes CVE-2017-12153. + +References: https://bugzilla.redhat.com/show_bug.cgi?id=1491046 +Fixes: e5497d766ad ("cfg80211/nl80211: support GTK rekey offload") +Cc: # v3.1-rc1 +Reported-by: bo Zhang +Signed-off-by: Vladis Dronov +--- + net/wireless/nl80211.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c +index 0df8023..fbd5593 100644 +--- a/net/wireless/nl80211.c ++++ b/net/wireless/nl80211.c +@@ -10903,6 +10903,9 @@ static int nl80211_set_rekey_data(struct sk_buff *skb, struct genl_info *info) + if (err) + return err; + ++ if (!tb[NL80211_REKEY_DATA_REPLAY_CTR] || !tb[NL80211_REKEY_DATA_KEK] || ++ !tb[NL80211_REKEY_DATA_KCK]) ++ return -EINVAL; + if (nla_len(tb[NL80211_REKEY_DATA_REPLAY_CTR]) != NL80211_REPLAY_CTR_LEN) + return -ERANGE; + if (nla_len(tb[NL80211_REKEY_DATA_KEK]) != NL80211_KEK_LEN) From f2d8939b08677eae783b13d662215e9906a6d610 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 13 Sep 2017 14:19:40 -0700 Subject: [PATCH 008/289] Bump for build --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 8d1549345..0097fc11a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 302 +%global baserelease 303 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching From a0ab8ce1ae0cc43929e064639db5df91229d83c4 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 14 Sep 2017 09:51:11 -0700 Subject: [PATCH 009/289] Linux v4.13.2 --- ...p-config-option-output-buffer-length.patch | 357 ------------------ kernel.spec | 10 +- sources | 2 +- 3 files changed, 6 insertions(+), 363 deletions(-) delete mode 100644 bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch diff --git a/bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch b/bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch deleted file mode 100644 index fe18f57ca..000000000 --- a/bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch +++ /dev/null @@ -1,357 +0,0 @@ -From e860d2c904d1a9f38a24eb44c9f34b8f915a6ea3 Mon Sep 17 00:00:00 2001 -From: Ben Seri -Date: Sat, 9 Sep 2017 23:15:59 +0200 -Subject: Bluetooth: Properly check L2CAP config option output buffer length - -From: Ben Seri - -commit e860d2c904d1a9f38a24eb44c9f34b8f915a6ea3 upstream. - -Validate the output buffer length for L2CAP config requests and responses -to avoid overflowing the stack buffer used for building the option blocks. - -Signed-off-by: Ben Seri -Signed-off-by: Marcel Holtmann -Signed-off-by: Linus Torvalds -Signed-off-by: Greg Kroah-Hartman - ---- - net/bluetooth/l2cap_core.c | 80 ++++++++++++++++++++++++--------------------- - 1 file changed, 43 insertions(+), 37 deletions(-) - ---- a/net/bluetooth/l2cap_core.c -+++ b/net/bluetooth/l2cap_core.c -@@ -58,7 +58,7 @@ static struct sk_buff *l2cap_build_cmd(s - u8 code, u8 ident, u16 dlen, void *data); - static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len, - void *data); --static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data); -+static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size); - static void l2cap_send_disconn_req(struct l2cap_chan *chan, int err); - - static void l2cap_tx(struct l2cap_chan *chan, struct l2cap_ctrl *control, -@@ -1473,7 +1473,7 @@ static void l2cap_conn_start(struct l2ca - - set_bit(CONF_REQ_SENT, &chan->conf_state); - l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, -- l2cap_build_conf_req(chan, buf), buf); -+ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); - chan->num_conf_req++; - } - -@@ -2987,12 +2987,15 @@ static inline int l2cap_get_conf_opt(voi - return len; - } - --static void l2cap_add_conf_opt(void **ptr, u8 type, u8 len, unsigned long val) -+static void l2cap_add_conf_opt(void **ptr, u8 type, u8 len, unsigned long val, size_t size) - { - struct l2cap_conf_opt *opt = *ptr; - - BT_DBG("type 0x%2.2x len %u val 0x%lx", type, len, val); - -+ if (size < L2CAP_CONF_OPT_SIZE + len) -+ return; -+ - opt->type = type; - opt->len = len; - -@@ -3017,7 +3020,7 @@ static void l2cap_add_conf_opt(void **pt - *ptr += L2CAP_CONF_OPT_SIZE + len; - } - --static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan) -+static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan, size_t size) - { - struct l2cap_conf_efs efs; - -@@ -3045,7 +3048,7 @@ static void l2cap_add_opt_efs(void **ptr - } - - l2cap_add_conf_opt(ptr, L2CAP_CONF_EFS, sizeof(efs), -- (unsigned long) &efs); -+ (unsigned long) &efs, size); - } - - static void l2cap_ack_timeout(struct work_struct *work) -@@ -3191,11 +3194,12 @@ static inline void l2cap_txwin_setup(str - chan->ack_win = chan->tx_win; - } - --static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data) -+static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size) - { - struct l2cap_conf_req *req = data; - struct l2cap_conf_rfc rfc = { .mode = chan->mode }; - void *ptr = req->data; -+ void *endptr = data + data_size; - u16 size; - - BT_DBG("chan %p", chan); -@@ -3220,7 +3224,7 @@ static int l2cap_build_conf_req(struct l - - done: - if (chan->imtu != L2CAP_DEFAULT_MTU) -- l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu); -+ l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu, endptr - ptr); - - switch (chan->mode) { - case L2CAP_MODE_BASIC: -@@ -3239,7 +3243,7 @@ done: - rfc.max_pdu_size = 0; - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), -- (unsigned long) &rfc); -+ (unsigned long) &rfc, endptr - ptr); - break; - - case L2CAP_MODE_ERTM: -@@ -3259,21 +3263,21 @@ done: - L2CAP_DEFAULT_TX_WINDOW); - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), -- (unsigned long) &rfc); -+ (unsigned long) &rfc, endptr - ptr); - - if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) -- l2cap_add_opt_efs(&ptr, chan); -+ l2cap_add_opt_efs(&ptr, chan, endptr - ptr); - - if (test_bit(FLAG_EXT_CTRL, &chan->flags)) - l2cap_add_conf_opt(&ptr, L2CAP_CONF_EWS, 2, -- chan->tx_win); -+ chan->tx_win, endptr - ptr); - - if (chan->conn->feat_mask & L2CAP_FEAT_FCS) - if (chan->fcs == L2CAP_FCS_NONE || - test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) { - chan->fcs = L2CAP_FCS_NONE; - l2cap_add_conf_opt(&ptr, L2CAP_CONF_FCS, 1, -- chan->fcs); -+ chan->fcs, endptr - ptr); - } - break; - -@@ -3291,17 +3295,17 @@ done: - rfc.max_pdu_size = cpu_to_le16(size); - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), -- (unsigned long) &rfc); -+ (unsigned long) &rfc, endptr - ptr); - - if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) -- l2cap_add_opt_efs(&ptr, chan); -+ l2cap_add_opt_efs(&ptr, chan, endptr - ptr); - - if (chan->conn->feat_mask & L2CAP_FEAT_FCS) - if (chan->fcs == L2CAP_FCS_NONE || - test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) { - chan->fcs = L2CAP_FCS_NONE; - l2cap_add_conf_opt(&ptr, L2CAP_CONF_FCS, 1, -- chan->fcs); -+ chan->fcs, endptr - ptr); - } - break; - } -@@ -3312,10 +3316,11 @@ done: - return ptr - data; - } - --static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data) -+static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data_size) - { - struct l2cap_conf_rsp *rsp = data; - void *ptr = rsp->data; -+ void *endptr = data + data_size; - void *req = chan->conf_req; - int len = chan->conf_len; - int type, hint, olen; -@@ -3417,7 +3422,7 @@ done: - return -ECONNREFUSED; - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), -- (unsigned long) &rfc); -+ (unsigned long) &rfc, endptr - ptr); - } - - if (result == L2CAP_CONF_SUCCESS) { -@@ -3430,7 +3435,7 @@ done: - chan->omtu = mtu; - set_bit(CONF_MTU_DONE, &chan->conf_state); - } -- l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->omtu); -+ l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->omtu, endptr - ptr); - - if (remote_efs) { - if (chan->local_stype != L2CAP_SERV_NOTRAFIC && -@@ -3444,7 +3449,7 @@ done: - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS, - sizeof(efs), -- (unsigned long) &efs); -+ (unsigned long) &efs, endptr - ptr); - } else { - /* Send PENDING Conf Rsp */ - result = L2CAP_CONF_PENDING; -@@ -3477,7 +3482,7 @@ done: - set_bit(CONF_MODE_DONE, &chan->conf_state); - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, -- sizeof(rfc), (unsigned long) &rfc); -+ sizeof(rfc), (unsigned long) &rfc, endptr - ptr); - - if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) { - chan->remote_id = efs.id; -@@ -3491,7 +3496,7 @@ done: - le32_to_cpu(efs.sdu_itime); - l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS, - sizeof(efs), -- (unsigned long) &efs); -+ (unsigned long) &efs, endptr - ptr); - } - break; - -@@ -3505,7 +3510,7 @@ done: - set_bit(CONF_MODE_DONE, &chan->conf_state); - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), -- (unsigned long) &rfc); -+ (unsigned long) &rfc, endptr - ptr); - - break; - -@@ -3527,10 +3532,11 @@ done: - } - - static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len, -- void *data, u16 *result) -+ void *data, size_t size, u16 *result) - { - struct l2cap_conf_req *req = data; - void *ptr = req->data; -+ void *endptr = data + size; - int type, olen; - unsigned long val; - struct l2cap_conf_rfc rfc = { .mode = L2CAP_MODE_BASIC }; -@@ -3548,13 +3554,13 @@ static int l2cap_parse_conf_rsp(struct l - chan->imtu = L2CAP_DEFAULT_MIN_MTU; - } else - chan->imtu = val; -- l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu); -+ l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu, endptr - ptr); - break; - - case L2CAP_CONF_FLUSH_TO: - chan->flush_to = val; - l2cap_add_conf_opt(&ptr, L2CAP_CONF_FLUSH_TO, -- 2, chan->flush_to); -+ 2, chan->flush_to, endptr - ptr); - break; - - case L2CAP_CONF_RFC: -@@ -3568,13 +3574,13 @@ static int l2cap_parse_conf_rsp(struct l - chan->fcs = 0; - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, -- sizeof(rfc), (unsigned long) &rfc); -+ sizeof(rfc), (unsigned long) &rfc, endptr - ptr); - break; - - case L2CAP_CONF_EWS: - chan->ack_win = min_t(u16, val, chan->ack_win); - l2cap_add_conf_opt(&ptr, L2CAP_CONF_EWS, 2, -- chan->tx_win); -+ chan->tx_win, endptr - ptr); - break; - - case L2CAP_CONF_EFS: -@@ -3587,7 +3593,7 @@ static int l2cap_parse_conf_rsp(struct l - return -ECONNREFUSED; - - l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS, sizeof(efs), -- (unsigned long) &efs); -+ (unsigned long) &efs, endptr - ptr); - break; - - case L2CAP_CONF_FCS: -@@ -3692,7 +3698,7 @@ void __l2cap_connect_rsp_defer(struct l2 - return; - - l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, -- l2cap_build_conf_req(chan, buf), buf); -+ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); - chan->num_conf_req++; - } - -@@ -3900,7 +3906,7 @@ sendresp: - u8 buf[128]; - set_bit(CONF_REQ_SENT, &chan->conf_state); - l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, -- l2cap_build_conf_req(chan, buf), buf); -+ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); - chan->num_conf_req++; - } - -@@ -3978,7 +3984,7 @@ static int l2cap_connect_create_rsp(stru - break; - - l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, -- l2cap_build_conf_req(chan, req), req); -+ l2cap_build_conf_req(chan, req, sizeof(req)), req); - chan->num_conf_req++; - break; - -@@ -4090,7 +4096,7 @@ static inline int l2cap_config_req(struc - } - - /* Complete config. */ -- len = l2cap_parse_conf_req(chan, rsp); -+ len = l2cap_parse_conf_req(chan, rsp, sizeof(rsp)); - if (len < 0) { - l2cap_send_disconn_req(chan, ECONNRESET); - goto unlock; -@@ -4124,7 +4130,7 @@ static inline int l2cap_config_req(struc - if (!test_and_set_bit(CONF_REQ_SENT, &chan->conf_state)) { - u8 buf[64]; - l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ, -- l2cap_build_conf_req(chan, buf), buf); -+ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); - chan->num_conf_req++; - } - -@@ -4184,7 +4190,7 @@ static inline int l2cap_config_rsp(struc - char buf[64]; - - len = l2cap_parse_conf_rsp(chan, rsp->data, len, -- buf, &result); -+ buf, sizeof(buf), &result); - if (len < 0) { - l2cap_send_disconn_req(chan, ECONNRESET); - goto done; -@@ -4214,7 +4220,7 @@ static inline int l2cap_config_rsp(struc - /* throw out any old stored conf requests */ - result = L2CAP_CONF_SUCCESS; - len = l2cap_parse_conf_rsp(chan, rsp->data, len, -- req, &result); -+ req, sizeof(req), &result); - if (len < 0) { - l2cap_send_disconn_req(chan, ECONNRESET); - goto done; -@@ -4791,7 +4797,7 @@ static void l2cap_do_create(struct l2cap - set_bit(CONF_REQ_SENT, &chan->conf_state); - l2cap_send_cmd(chan->conn, l2cap_get_ident(chan->conn), - L2CAP_CONF_REQ, -- l2cap_build_conf_req(chan, buf), buf); -+ l2cap_build_conf_req(chan, buf, sizeof(buf)), buf); - chan->num_conf_req++; - } - } -@@ -7465,7 +7471,7 @@ static void l2cap_security_cfm(struct hc - set_bit(CONF_REQ_SENT, &chan->conf_state); - l2cap_send_cmd(conn, l2cap_get_ident(conn), - L2CAP_CONF_REQ, -- l2cap_build_conf_req(chan, buf), -+ l2cap_build_conf_req(chan, buf, sizeof(buf)), - buf); - chan->num_conf_req++; - } diff --git a/kernel.spec b/kernel.spec index 0097fc11a..9b55307bd 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 303 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 1 +%define stable_update 2 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -662,9 +662,6 @@ Patch620: kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch # CVE-2017-12153 rhbz 1491046 1491057 Patch621: nl80211-check-for-the-required-netlink-attributes-presence.patch -# CVE-2017-1000251 rhbz 1489716 1490906 -Patch622: bluetooth-properly-check-l2cap-config-option-output-buffer-length.patch - # END OF PATCH DEFINITIONS %endif @@ -2219,6 +2216,9 @@ fi # # %changelog +* Thu Sep 14 2017 Laura Abbott - 4.13.2-300 +- Linux v4.13.2 + * Wed Sep 13 2017 Justin M. Forbes - Fix CVE-2017-12154 (rhbz 1491224 1491231) - Fix CVE-2017-12153 (rhbz 1491046 1491057) diff --git a/sources b/sources index 82bb8186b..437172001 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.1.xz) = 392ba115d4728730d73e3c66e07f0230894f44ae71851c26ec9707d5f26bc093a6f7043592232deddf2619d2c7d305e62b168b52a142c59f10970f22bf3fbe7e +SHA512 (patch-4.13.2.xz) = 2b9cc6f24c2792b619189c81d8960d6f5dd622f767d6645208c59f3f38c00db5bdfb0d1fbbfa717bea7fd86067921cf07109c9a7a1001ce7a915bfa2a6a2c03e From 317480cc2740c5c0ec482e3f78fc671a487ea2fa Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 15 Sep 2017 21:00:42 +0100 Subject: [PATCH 010/289] Enable Tegra 186 --- baseconfig/arm/arm64/CONFIG_ARCH_TEGRA_186_SOC | 2 +- kernel-aarch64-debug.config | 3 ++- kernel-aarch64.config | 3 ++- kernel.spec | 3 +++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/baseconfig/arm/arm64/CONFIG_ARCH_TEGRA_186_SOC b/baseconfig/arm/arm64/CONFIG_ARCH_TEGRA_186_SOC index 0439db330..1cafdb24f 100644 --- a/baseconfig/arm/arm64/CONFIG_ARCH_TEGRA_186_SOC +++ b/baseconfig/arm/arm64/CONFIG_ARCH_TEGRA_186_SOC @@ -1 +1 @@ -# CONFIG_ARCH_TEGRA_186_SOC is not set +CONFIG_ARCH_TEGRA_186_SOC=y diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 438df063c..2d44df3b4 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -232,7 +232,7 @@ CONFIG_ARCH_SEATTLE=y # CONFIG_ARCH_STRATIX10 is not set CONFIG_ARCH_SUNXI=y CONFIG_ARCH_TEGRA_132_SOC=y -# CONFIG_ARCH_TEGRA_186_SOC is not set +CONFIG_ARCH_TEGRA_186_SOC=y CONFIG_ARCH_TEGRA_210_SOC=y CONFIG_ARCH_TEGRA=y CONFIG_ARCH_THUNDER2=y @@ -303,6 +303,7 @@ CONFIG_ARM_SMMU_V3=y CONFIG_ARM_SMMU=y CONFIG_ARM_SP805_WATCHDOG=m CONFIG_ARM_TEGRA124_CPUFREQ=m +CONFIG_ARM_TEGRA186_CPUFREQ=m # CONFIG_ARM_TEGRA20_CPUFREQ is not set CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_ARM_TIMER_SP804=y diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 9b8bbd4a4..9a49d1793 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -232,7 +232,7 @@ CONFIG_ARCH_SEATTLE=y # CONFIG_ARCH_STRATIX10 is not set CONFIG_ARCH_SUNXI=y CONFIG_ARCH_TEGRA_132_SOC=y -# CONFIG_ARCH_TEGRA_186_SOC is not set +CONFIG_ARCH_TEGRA_186_SOC=y CONFIG_ARCH_TEGRA_210_SOC=y CONFIG_ARCH_TEGRA=y CONFIG_ARCH_THUNDER2=y @@ -303,6 +303,7 @@ CONFIG_ARM_SMMU_V3=y CONFIG_ARM_SMMU=y CONFIG_ARM_SP805_WATCHDOG=m CONFIG_ARM_TEGRA124_CPUFREQ=m +CONFIG_ARM_TEGRA186_CPUFREQ=m # CONFIG_ARM_TEGRA20_CPUFREQ is not set CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_ARM_TIMER_SP804=y diff --git a/kernel.spec b/kernel.spec index 9b55307bd..c04750582 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2216,6 +2216,9 @@ fi # # %changelog +* Fri Sep 15 2017 Peter Robinson +- Enable Tegra 186 + * Thu Sep 14 2017 Laura Abbott - 4.13.2-300 - Linux v4.13.2 From cbd54ab7df932e47c0cd192a637656309c8587ba Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 18 Sep 2017 07:14:04 -0500 Subject: [PATCH 011/289] Fixes for QXL (rhbz 1462381) --- kernel.spec | 6 +++ qxl-fixes.patch | 126 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 qxl-fixes.patch diff --git a/kernel.spec b/kernel.spec index c04750582..d4fdb2e83 100644 --- a/kernel.spec +++ b/kernel.spec @@ -662,6 +662,9 @@ Patch620: kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch # CVE-2017-12153 rhbz 1491046 1491057 Patch621: nl80211-check-for-the-required-netlink-attributes-presence.patch +# Should fix our QXL issues +Patch622: qxl-fixes.patch + # END OF PATCH DEFINITIONS %endif @@ -2216,6 +2219,9 @@ fi # # %changelog +* Mon Sep 18 2017 Justin M. Forbes +- Fixes for QXL (rhbz 1462381) + * Fri Sep 15 2017 Peter Robinson - Enable Tegra 186 diff --git a/qxl-fixes.patch b/qxl-fixes.patch new file mode 100644 index 000000000..0b39c6f01 --- /dev/null +++ b/qxl-fixes.patch @@ -0,0 +1,126 @@ +From c463b4ad6b2ac5a40c959e6c636eafc7edb1a63b Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Wed, 6 Sep 2017 11:31:51 +0200 +Subject: qxl: fix primary surface handling + +The atomic conversion of the qxl driver didn't got the primary surface +handling completely right. It works in the common simple cases, but +fails for example when changing the display resolution using xrandr or +in multihead setups. + +The rules are simple: There is one primary surface. Before defining a +new one you have to destroy the old one. + +This patch makes qxl_primary_atomic_update() destroy the primary surface +before defining a new one. It fixes is_primary flag updates. It adds +is_primary checks so we don't try to update the primary surface in case +it already has the state we want it being in. + +Signed-off-by: Gerd Hoffmann +--- + drivers/gpu/drm/qxl/qxl_display.c | 34 +++++++++++++++++++--------------- + 1 file changed, 19 insertions(+), 15 deletions(-) + +diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c +index 03fe182..7babdd8f 100644 +--- a/drivers/gpu/drm/qxl/qxl_display.c ++++ b/drivers/gpu/drm/qxl/qxl_display.c +@@ -512,23 +512,25 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, + .y2 = qfb->base.height + }; + +- if (!old_state->fb) { +- qxl_io_log(qdev, +- "create primary fb: %dx%d,%d,%d\n", +- bo->surf.width, bo->surf.height, +- bo->surf.stride, bo->surf.format); ++ if (old_state->fb) { ++ qfb_old = to_qxl_framebuffer(old_state->fb); ++ bo_old = gem_to_qxl_bo(qfb_old->obj); ++ } else { ++ bo_old = NULL; ++ } + +- qxl_io_create_primary(qdev, 0, bo); +- bo->is_primary = true; ++ if (bo == bo_old) + return; + +- } else { +- qfb_old = to_qxl_framebuffer(old_state->fb); +- bo_old = gem_to_qxl_bo(qfb_old->obj); ++ if (bo_old && bo_old->is_primary) { ++ qxl_io_destroy_primary(qdev); + bo_old->is_primary = false; + } + +- bo->is_primary = true; ++ if (!bo->is_primary) { ++ qxl_io_create_primary(qdev, 0, bo); ++ bo->is_primary = true; ++ } + qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); + } + +@@ -537,13 +539,15 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane, + { + struct qxl_device *qdev = plane->dev->dev_private; + +- if (old_state->fb) +- { struct qxl_framebuffer *qfb = ++ if (old_state->fb) { ++ struct qxl_framebuffer *qfb = + to_qxl_framebuffer(old_state->fb); + struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); + +- qxl_io_destroy_primary(qdev); +- bo->is_primary = false; ++ if (bo->is_primary) { ++ qxl_io_destroy_primary(qdev); ++ bo->is_primary = false; ++ } + } + } + +-- +cgit v0.12 + +From 05026e6e19b29104ddba4e8979e6c7af17944695 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Fri, 15 Sep 2017 12:46:15 +0200 +Subject: [testing] qxl: fix pinning + +cleanup_fb() unpins the just activated framebuffer instead of the +old one. Oops. + +Signed-off-by: Gerd Hoffmann +--- + drivers/gpu/drm/qxl/qxl_display.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c +index 7babdd8f..afc2272 100644 +--- a/drivers/gpu/drm/qxl/qxl_display.c ++++ b/drivers/gpu/drm/qxl/qxl_display.c +@@ -705,14 +705,15 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane, + struct drm_gem_object *obj; + struct qxl_bo *user_bo; + +- if (!plane->state->fb) { +- /* we never executed prepare_fb, so there's nothing to ++ if (!old_state->fb) { ++ /* ++ * we never executed prepare_fb, so there's nothing to + * unpin. + */ + return; + } + +- obj = to_qxl_framebuffer(plane->state->fb)->obj; ++ obj = to_qxl_framebuffer(old_state->fb)->obj; + user_bo = gem_to_qxl_bo(obj); + qxl_bo_unpin(user_bo); + } +-- +cgit v0.12 + From a8fc92970af7320bf71494ef30f6a45b43ed97a1 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 18 Sep 2017 14:19:23 -0500 Subject: [PATCH 012/289] Fix rhbz 1431375 --- ...e-the-HID-device-is-opened-on-resume.patch | 74 ++++ ...i4-remove-the-need-for-artifical-IRQ.patch | 331 ++++++++++++++++++ kernel.spec | 5 + 3 files changed, 410 insertions(+) create mode 100644 HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch create mode 100644 input-rmi4-remove-the-need-for-artifical-IRQ.patch diff --git a/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch b/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch new file mode 100644 index 000000000..d7d626972 --- /dev/null +++ b/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch @@ -0,0 +1,74 @@ +From patchwork Sun Jul 23 01:15:09 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: HID: rmi: Make sure the HID device is opened on resume +From: Lyude +X-Patchwork-Id: 9858267 +Message-Id: <20170723011509.23651-1-lyude@redhat.com> +To: linux-input@vger.kernel.org +Cc: Lyude , Andrew Duggan , + stable@vger.kernel.org, Jiri Kosina , + Benjamin Tissoires , + linux-kernel@vger.kernel.org +Date: Sat, 22 Jul 2017 21:15:09 -0400 + +So it looks like that suspend/resume has actually always been broken on +hid-rmi. The fact it worked was a rather silly coincidence that was +relying on the HID device to already be opened upon resume. This means +that so long as anything was reading the /dev/input/eventX node for for +an RMI device, it would suspend and resume correctly. As well, if +nothing happened to be keeping the HID device away it would shut off, +then the RMI driver would get confused on resume when it stopped +responding and explode. + +So, call hid_hw_open() in rmi_post_resume() so we make sure that the +device is alive before we try talking to it. + +This fixes RMI device suspend/resume over HID. + +Signed-off-by: Lyude +Cc: Andrew Duggan +Cc: stable@vger.kernel.org +--- + drivers/hid/hid-rmi.c | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index 5b40c2614599..e7d124f9a27f 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -431,22 +431,29 @@ static int rmi_post_resume(struct hid_device *hdev) + { + struct rmi_data *data = hid_get_drvdata(hdev); + struct rmi_device *rmi_dev = data->xport.rmi_dev; +- int ret; ++ int ret = 0; + + if (!(data->device_flags & RMI_DEVICE)) + return 0; + +- ret = rmi_reset_attn_mode(hdev); ++ /* Make sure the HID device is ready to receive events */ ++ ret = hid_hw_open(hdev); + if (ret) + return ret; + ++ ret = rmi_reset_attn_mode(hdev); ++ if (ret) ++ goto out; ++ + ret = rmi_driver_resume(rmi_dev, false); + if (ret) { + hid_warn(hdev, "Failed to resume device: %d\n", ret); +- return ret; ++ goto out; + } + +- return 0; ++out: ++ hid_hw_close(hdev); ++ return ret; + } + #endif /* CONFIG_PM */ + diff --git a/input-rmi4-remove-the-need-for-artifical-IRQ.patch b/input-rmi4-remove-the-need-for-artifical-IRQ.patch new file mode 100644 index 000000000..01b1a4660 --- /dev/null +++ b/input-rmi4-remove-the-need-for-artifical-IRQ.patch @@ -0,0 +1,331 @@ +From 47c84357d95eccd77c1320b4bca74bbec649ef3c Mon Sep 17 00:00:00 2001 +From: Benjamin Tissoires +Date: Mon, 3 Apr 2017 18:18:21 +0200 +Subject: [PATCH] Input: rmi4 - remove the need for artificial IRQ in case of + HID + +The IRQ from rmi4 may interfere with the one we currently use on i2c-hid. +Given that there is already a need for an external API from rmi4 to +forward the attention data, we can, in this particular case rely on a +separate workqueue to prevent cursor jumps. + +Reported-by: Cameron Gutman +Reported-by: Thorsten Leemhuis +Reported-by: Jason Ekstrand +Tested-by: Andrew Duggan +Signed-off-by: Benjamin Tissoires +Signed-off-by: Lyude +--- + drivers/hid/hid-rmi.c | 64 --------------------- + drivers/input/rmi4/rmi_driver.c | 122 ++++++++++++++++++++++++---------------- + include/linux/rmi.h | 1 + + 3 files changed, 75 insertions(+), 112 deletions(-) + +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index 5b40c26..4aa882c 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -316,19 +316,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) + { + struct rmi_data *hdata = hid_get_drvdata(hdev); + struct rmi_device *rmi_dev = hdata->xport.rmi_dev; +- unsigned long flags; + + if (!(test_bit(RMI_STARTED, &hdata->flags))) + return 0; + +- local_irq_save(flags); +- + rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); + +- generic_handle_irq(hdata->rmi_irq); +- +- local_irq_restore(flags); +- + return 1; + } + +@@ -556,56 +549,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { + .reset = rmi_hid_reset, + }; + +-static void rmi_irq_teardown(void *data) +-{ +- struct rmi_data *hdata = data; +- struct irq_domain *domain = hdata->domain; +- +- if (!domain) +- return; +- +- irq_dispose_mapping(irq_find_mapping(domain, 0)); +- +- irq_domain_remove(domain); +- hdata->domain = NULL; +- hdata->rmi_irq = 0; +-} +- +-static int rmi_irq_map(struct irq_domain *h, unsigned int virq, +- irq_hw_number_t hw_irq_num) +-{ +- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq); +- +- return 0; +-} +- +-static const struct irq_domain_ops rmi_irq_ops = { +- .map = rmi_irq_map, +-}; +- +-static int rmi_setup_irq_domain(struct hid_device *hdev) +-{ +- struct rmi_data *hdata = hid_get_drvdata(hdev); +- int ret; +- +- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1, +- &rmi_irq_ops, hdata); +- if (!hdata->domain) +- return -ENOMEM; +- +- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata); +- if (ret) +- return ret; +- +- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0); +- if (hdata->rmi_irq <= 0) { +- hid_err(hdev, "Can't allocate an IRQ\n"); +- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO; +- } +- +- return 0; +-} +- + static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + { + struct rmi_data *data = NULL; +@@ -677,18 +620,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + + mutex_init(&data->page_mutex); + +- ret = rmi_setup_irq_domain(hdev); +- if (ret) { +- hid_err(hdev, "failed to allocate IRQ domain\n"); +- return ret; +- } +- + if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS) + rmi_hid_pdata.f30_data.disable = true; + + data->xport.dev = hdev->dev.parent; + data->xport.pdata = rmi_hid_pdata; +- data->xport.pdata.irq = data->rmi_irq; + data->xport.proto_name = "hid"; + data->xport.ops = &hid_rmi_ops; + +diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c +index 4f2bb59..6d7da84 100644 +--- a/drivers/input/rmi4/rmi_driver.c ++++ b/drivers/input/rmi4/rmi_driver.c +@@ -209,32 +209,46 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, + attn_data.data = fifo_data; + + kfifo_put(&drvdata->attn_fifo, attn_data); ++ ++ schedule_work(&drvdata->attn_work); + } + EXPORT_SYMBOL_GPL(rmi_set_attn_data); + +-static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++static void attn_callback(struct work_struct *work) + { +- struct rmi_device *rmi_dev = dev_id; +- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev); ++ struct rmi_driver_data *drvdata = container_of(work, ++ struct rmi_driver_data, ++ attn_work); + struct rmi4_attn_data attn_data = {0}; + int ret, count; + + count = kfifo_get(&drvdata->attn_fifo, &attn_data); +- if (count) { +- *(drvdata->irq_status) = attn_data.irq_status; +- drvdata->attn_data = attn_data; +- } ++ if (!count) ++ return; + +- ret = rmi_process_interrupt_requests(rmi_dev); ++ *(drvdata->irq_status) = attn_data.irq_status; ++ drvdata->attn_data = attn_data; ++ ++ ret = rmi_process_interrupt_requests(drvdata->rmi_dev); + if (ret) +- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev, + "Failed to process interrupt request: %d\n", ret); + +- if (count) +- kfree(attn_data.data); ++ kfree(attn_data.data); + + if (!kfifo_is_empty(&drvdata->attn_fifo)) +- return rmi_irq_fn(irq, dev_id); ++ schedule_work(&drvdata->attn_work); ++} ++ ++static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++{ ++ struct rmi_device *rmi_dev = dev_id; ++ int ret; ++ ++ ret = rmi_process_interrupt_requests(rmi_dev); ++ if (ret) ++ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ "Failed to process interrupt request: %d\n", ret); + + return IRQ_HANDLED; + } +@@ -242,7 +256,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) + static int rmi_irq_init(struct rmi_device *rmi_dev) + { + struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev); +- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); + int irq_flags = irq_get_trigger_type(pdata->irq); + int ret; + +@@ -260,8 +273,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) + return ret; + } + +- data->enabled = true; +- + return 0; + } + +@@ -910,23 +921,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) + if (data->enabled) + goto out; + +- enable_irq(irq); +- data->enabled = true; +- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = disable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to disable irq for wake: %d\n", +- retval); +- } ++ if (irq) { ++ enable_irq(irq); ++ data->enabled = true; ++ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = disable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to disable irq for wake: %d\n", ++ retval); ++ } + +- /* +- * Call rmi_process_interrupt_requests() after enabling irq, +- * otherwise we may lose interrupt on edge-triggered systems. +- */ +- irq_flags = irq_get_trigger_type(pdata->irq); +- if (irq_flags & IRQ_TYPE_EDGE_BOTH) +- rmi_process_interrupt_requests(rmi_dev); ++ /* ++ * Call rmi_process_interrupt_requests() after enabling irq, ++ * otherwise we may lose interrupt on edge-triggered systems. ++ */ ++ irq_flags = irq_get_trigger_type(pdata->irq); ++ if (irq_flags & IRQ_TYPE_EDGE_BOTH) ++ rmi_process_interrupt_requests(rmi_dev); ++ } else { ++ data->enabled = true; ++ } + + out: + mutex_unlock(&data->enabled_mutex); +@@ -946,20 +961,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) + goto out; + + data->enabled = false; +- disable_irq(irq); +- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = enable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to enable irq for wake: %d\n", +- retval); +- } +- +- /* make sure the fifo is clean */ +- while (!kfifo_is_empty(&data->attn_fifo)) { +- count = kfifo_get(&data->attn_fifo, &attn_data); +- if (count) +- kfree(attn_data.data); ++ if (irq) { ++ disable_irq(irq); ++ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = enable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to enable irq for wake: %d\n", ++ retval); ++ } ++ } else { ++ /* make sure the fifo is clean */ ++ while (!kfifo_is_empty(&data->attn_fifo)) { ++ count = kfifo_get(&data->attn_fifo, &attn_data); ++ if (count) ++ kfree(attn_data.data); ++ } + } + + out: +@@ -998,9 +1015,12 @@ EXPORT_SYMBOL_GPL(rmi_driver_resume); + static int rmi_driver_remove(struct device *dev) + { + struct rmi_device *rmi_dev = to_rmi_device(dev); ++ struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); + + rmi_disable_irq(rmi_dev, false); + ++ cancel_work_sync(&data->attn_work); ++ + rmi_f34_remove_sysfs(rmi_dev); + rmi_free_function_list(rmi_dev); + +@@ -1230,9 +1250,15 @@ static int rmi_driver_probe(struct device *dev) + } + } + +- retval = rmi_irq_init(rmi_dev); +- if (retval < 0) +- goto err_destroy_functions; ++ if (pdata->irq) { ++ retval = rmi_irq_init(rmi_dev); ++ if (retval < 0) ++ goto err_destroy_functions; ++ } ++ ++ data->enabled = true; ++ ++ INIT_WORK(&data->attn_work, attn_callback); + + if (data->f01_container->dev.driver) { + /* Driver already bound, so enable ATTN now. */ +diff --git a/include/linux/rmi.h b/include/linux/rmi.h +index 64125443..dc90178 100644 +--- a/include/linux/rmi.h ++++ b/include/linux/rmi.h +@@ -364,6 +364,7 @@ struct rmi_driver_data { + + struct rmi4_attn_data attn_data; + DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16); ++ struct work_struct attn_work; + }; + + int rmi_register_transport_device(struct rmi_transport_dev *xport); +-- +2.9.4 + diff --git a/kernel.spec b/kernel.spec index d4fdb2e83..08000e970 100644 --- a/kernel.spec +++ b/kernel.spec @@ -665,6 +665,10 @@ Patch621: nl80211-check-for-the-required-netlink-attributes-presence.patch # Should fix our QXL issues Patch622: qxl-fixes.patch +# rhbz 1431375 +Patch623: HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch +Patch624: input-rmi4-remove-the-need-for-artifical-IRQ.patch + # END OF PATCH DEFINITIONS %endif @@ -2221,6 +2225,7 @@ fi %changelog * Mon Sep 18 2017 Justin M. Forbes - Fixes for QXL (rhbz 1462381) +- Fix rhbz 1431375 * Fri Sep 15 2017 Peter Robinson - Enable Tegra 186 From 5bce212ddd544bba37e11831bb6e9aefb354ced8 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 18 Sep 2017 14:22:09 -0500 Subject: [PATCH 013/289] add missing file in baseconfig for CONFIG_ARM_TEGRA186_CPUFREQ --- baseconfig/arm/arm64/CONFIG_ARM_TEGRA186_CPUFREQ | 1 + 1 file changed, 1 insertion(+) create mode 100644 baseconfig/arm/arm64/CONFIG_ARM_TEGRA186_CPUFREQ diff --git a/baseconfig/arm/arm64/CONFIG_ARM_TEGRA186_CPUFREQ b/baseconfig/arm/arm64/CONFIG_ARM_TEGRA186_CPUFREQ new file mode 100644 index 000000000..f0e165dfb --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_ARM_TEGRA186_CPUFREQ @@ -0,0 +1 @@ +CONFIG_ARM_TEGRA186_CPUFREQ=m From 886e8bd8e180184ec8611d8bbb1d55828eed4f86 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 19 Sep 2017 15:46:17 +0100 Subject: [PATCH 014/289] Fix a few vc4 crashes on the Raspberry Pi using 4.14 fixes, drop a patch already applied that git would still apply --- ...to-cache-a-partially-constructed-BO..patch | 42 - bcm283x-vc4-fixes.patch | 1803 +++++++++++++++++ kernel.spec | 10 +- 3 files changed, 1809 insertions(+), 46 deletions(-) delete mode 100644 bcm283x-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO..patch create mode 100644 bcm283x-vc4-fixes.patch diff --git a/bcm283x-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO..patch b/bcm283x-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO..patch deleted file mode 100644 index 70a528253..000000000 --- a/bcm283x-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO..patch +++ /dev/null @@ -1,42 +0,0 @@ -From patchwork Thu Feb 9 18:16:00 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: drm/vc4: Fix OOPSes from trying to cache a partially constructed BO. -From: Eric Anholt -X-Patchwork-Id: 138087 -Message-Id: <20170209181600.24048-1-eric@anholt.net> -To: dri-devel@lists.freedesktop.org -Cc: linux-kernel@vger.kernel.org, pbrobinson@gmail.com -Date: Thu, 9 Feb 2017 10:16:00 -0800 - -If a CMA allocation failed, the partially constructed BO would be -unreferenced through the normal path, and we might choose to put it in -the BO cache. If we then reused it before it expired from the cache, -the kernel would OOPS. - -Signed-off-by: Eric Anholt -Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.") ---- - drivers/gpu/drm/vc4/vc4_bo.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c -index 5ec14f25625d..fd83a2807656 100644 ---- a/drivers/gpu/drm/vc4/vc4_bo.c -+++ b/drivers/gpu/drm/vc4/vc4_bo.c -@@ -314,6 +314,14 @@ void vc4_free_object(struct drm_gem_object *gem_bo) - goto out; - } - -+ /* If this object was partially constructed but CMA allocation -+ * had failed, just free it. -+ */ -+ if (!bo->base.vaddr) { -+ vc4_bo_destroy(bo); -+ goto out; -+ } -+ - cache_list = vc4_get_cache_list_for_size(dev, gem_bo->size); - if (!cache_list) { - vc4_bo_destroy(bo); diff --git a/bcm283x-vc4-fixes.patch b/bcm283x-vc4-fixes.patch new file mode 100644 index 000000000..d17ff1873 --- /dev/null +++ b/bcm283x-vc4-fixes.patch @@ -0,0 +1,1803 @@ +From d74617cb4aebe5a4cb3eeda3070053ccfc36a0ae Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 25 Jul 2017 09:27:32 -0700 +Subject: [PATCH 1/6] drm/vc4: Demote user-accessible DRM_ERROR paths to + DRM_DEBUG. + +Userspace shouldn't be able to spam dmesg by passing bad arguments. +This has particularly become an issues since we started using a bad +argument to set_tiling to detect if set_tiling was supported. + +Signed-off-by: Eric Anholt +Fixes: 83753117f1de ("drm/vc4: Add get/set tiling ioctls.") +Link: https://patchwork.freedesktop.org/patch/msgid/20170725162733.28007-1-eric@anholt.net +Reviewed-by: Boris Brezillon +--- + drivers/gpu/drm/vc4/vc4_bo.c | 14 +++--- + drivers/gpu/drm/vc4/vc4_gem.c | 10 ++-- + drivers/gpu/drm/vc4/vc4_kms.c | 2 +- + drivers/gpu/drm/vc4/vc4_render_cl.c | 40 +++++++-------- + drivers/gpu/drm/vc4/vc4_validate.c | 78 +++++++++++++++--------------- + drivers/gpu/drm/vc4/vc4_validate_shaders.c | 72 +++++++++++++-------------- + 6 files changed, 108 insertions(+), 108 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c +index 487f96412d35..ede80199001d 100644 +--- a/drivers/gpu/drm/vc4/vc4_bo.c ++++ b/drivers/gpu/drm/vc4/vc4_bo.c +@@ -389,7 +389,7 @@ vc4_prime_export(struct drm_device *dev, struct drm_gem_object *obj, int flags) + struct vc4_bo *bo = to_vc4_bo(obj); + + if (bo->validated_shader) { +- DRM_ERROR("Attempting to export shader BO\n"); ++ DRM_DEBUG("Attempting to export shader BO\n"); + return ERR_PTR(-EINVAL); + } + +@@ -410,7 +410,7 @@ int vc4_mmap(struct file *filp, struct vm_area_struct *vma) + bo = to_vc4_bo(gem_obj); + + if (bo->validated_shader && (vma->vm_flags & VM_WRITE)) { +- DRM_ERROR("mmaping of shader BOs for writing not allowed.\n"); ++ DRM_DEBUG("mmaping of shader BOs for writing not allowed.\n"); + return -EINVAL; + } + +@@ -435,7 +435,7 @@ int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) + struct vc4_bo *bo = to_vc4_bo(obj); + + if (bo->validated_shader && (vma->vm_flags & VM_WRITE)) { +- DRM_ERROR("mmaping of shader BOs for writing not allowed.\n"); ++ DRM_DEBUG("mmaping of shader BOs for writing not allowed.\n"); + return -EINVAL; + } + +@@ -447,7 +447,7 @@ void *vc4_prime_vmap(struct drm_gem_object *obj) + struct vc4_bo *bo = to_vc4_bo(obj); + + if (bo->validated_shader) { +- DRM_ERROR("mmaping of shader BOs not allowed.\n"); ++ DRM_DEBUG("mmaping of shader BOs not allowed.\n"); + return ERR_PTR(-EINVAL); + } + +@@ -501,7 +501,7 @@ int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data, + + gem_obj = drm_gem_object_lookup(file_priv, args->handle); + if (!gem_obj) { +- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); ++ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); + return -EINVAL; + } + +@@ -605,7 +605,7 @@ int vc4_set_tiling_ioctl(struct drm_device *dev, void *data, + + gem_obj = drm_gem_object_lookup(file_priv, args->handle); + if (!gem_obj) { +- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); ++ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); + return -ENOENT; + } + bo = to_vc4_bo(gem_obj); +@@ -636,7 +636,7 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, + + gem_obj = drm_gem_object_lookup(file_priv, args->handle); + if (!gem_obj) { +- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); ++ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); + return -ENOENT; + } + bo = to_vc4_bo(gem_obj); +diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c +index d5b821ad06af..a3e45e67f417 100644 +--- a/drivers/gpu/drm/vc4/vc4_gem.c ++++ b/drivers/gpu/drm/vc4/vc4_gem.c +@@ -659,7 +659,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, + /* See comment on bo_index for why we have to check + * this. + */ +- DRM_ERROR("Rendering requires BOs to validate\n"); ++ DRM_DEBUG("Rendering requires BOs to validate\n"); + return -EINVAL; + } + +@@ -691,7 +691,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, + struct drm_gem_object *bo = idr_find(&file_priv->object_idr, + handles[i]); + if (!bo) { +- DRM_ERROR("Failed to look up GEM BO %d: %d\n", ++ DRM_DEBUG("Failed to look up GEM BO %d: %d\n", + i, handles[i]); + ret = -EINVAL; + spin_unlock(&file_priv->table_lock); +@@ -729,7 +729,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) + args->shader_rec_count >= (UINT_MAX / + sizeof(struct vc4_shader_state)) || + temp_size < exec_size) { +- DRM_ERROR("overflow in exec arguments\n"); ++ DRM_DEBUG("overflow in exec arguments\n"); + ret = -EINVAL; + goto fail; + } +@@ -974,7 +974,7 @@ vc4_wait_bo_ioctl(struct drm_device *dev, void *data, + + gem_obj = drm_gem_object_lookup(file_priv, args->handle); + if (!gem_obj) { +- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); ++ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); + return -EINVAL; + } + bo = to_vc4_bo(gem_obj); +@@ -1009,7 +1009,7 @@ vc4_submit_cl_ioctl(struct drm_device *dev, void *data, + int ret = 0; + + if ((args->flags & ~VC4_SUBMIT_CL_USE_CLEAR_COLOR) != 0) { +- DRM_ERROR("Unknown flags: 0x%02x\n", args->flags); ++ DRM_DEBUG("Unknown flags: 0x%02x\n", args->flags); + return -EINVAL; + } + +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index bc6ecdc6f104..b2c55eb09ca3 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -204,7 +204,7 @@ static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev, + gem_obj = drm_gem_object_lookup(file_priv, + mode_cmd->handles[0]); + if (!gem_obj) { +- DRM_ERROR("Failed to look up GEM BO %d\n", ++ DRM_DEBUG("Failed to look up GEM BO %d\n", + mode_cmd->handles[0]); + return ERR_PTR(-ENOENT); + } +diff --git a/drivers/gpu/drm/vc4/vc4_render_cl.c b/drivers/gpu/drm/vc4/vc4_render_cl.c +index 5dc19429d4ae..da3bfd53f0bd 100644 +--- a/drivers/gpu/drm/vc4/vc4_render_cl.c ++++ b/drivers/gpu/drm/vc4/vc4_render_cl.c +@@ -378,14 +378,14 @@ static int vc4_full_res_bounds_check(struct vc4_exec_info *exec, + u32 render_tiles_stride = DIV_ROUND_UP(exec->args->width, 32); + + if (surf->offset > obj->base.size) { +- DRM_ERROR("surface offset %d > BO size %zd\n", ++ DRM_DEBUG("surface offset %d > BO size %zd\n", + surf->offset, obj->base.size); + return -EINVAL; + } + + if ((obj->base.size - surf->offset) / VC4_TILE_BUFFER_SIZE < + render_tiles_stride * args->max_y_tile + args->max_x_tile) { +- DRM_ERROR("MSAA tile %d, %d out of bounds " ++ DRM_DEBUG("MSAA tile %d, %d out of bounds " + "(bo size %zd, offset %d).\n", + args->max_x_tile, args->max_y_tile, + obj->base.size, +@@ -401,7 +401,7 @@ static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec, + struct drm_vc4_submit_rcl_surface *surf) + { + if (surf->flags != 0 || surf->bits != 0) { +- DRM_ERROR("MSAA surface had nonzero flags/bits\n"); ++ DRM_DEBUG("MSAA surface had nonzero flags/bits\n"); + return -EINVAL; + } + +@@ -415,7 +415,7 @@ static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec, + exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj; + + if (surf->offset & 0xf) { +- DRM_ERROR("MSAA write must be 16b aligned.\n"); ++ DRM_DEBUG("MSAA write must be 16b aligned.\n"); + return -EINVAL; + } + +@@ -437,7 +437,7 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, + int ret; + + if (surf->flags & ~VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES) { +- DRM_ERROR("Extra flags set\n"); ++ DRM_DEBUG("Extra flags set\n"); + return -EINVAL; + } + +@@ -453,12 +453,12 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, + + if (surf->flags & VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES) { + if (surf == &exec->args->zs_write) { +- DRM_ERROR("general zs write may not be a full-res.\n"); ++ DRM_DEBUG("general zs write may not be a full-res.\n"); + return -EINVAL; + } + + if (surf->bits != 0) { +- DRM_ERROR("load/store general bits set with " ++ DRM_DEBUG("load/store general bits set with " + "full res load/store.\n"); + return -EINVAL; + } +@@ -473,19 +473,19 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, + if (surf->bits & ~(VC4_LOADSTORE_TILE_BUFFER_TILING_MASK | + VC4_LOADSTORE_TILE_BUFFER_BUFFER_MASK | + VC4_LOADSTORE_TILE_BUFFER_FORMAT_MASK)) { +- DRM_ERROR("Unknown bits in load/store: 0x%04x\n", ++ DRM_DEBUG("Unknown bits in load/store: 0x%04x\n", + surf->bits); + return -EINVAL; + } + + if (tiling > VC4_TILING_FORMAT_LT) { +- DRM_ERROR("Bad tiling format\n"); ++ DRM_DEBUG("Bad tiling format\n"); + return -EINVAL; + } + + if (buffer == VC4_LOADSTORE_TILE_BUFFER_ZS) { + if (format != 0) { +- DRM_ERROR("No color format should be set for ZS\n"); ++ DRM_DEBUG("No color format should be set for ZS\n"); + return -EINVAL; + } + cpp = 4; +@@ -499,16 +499,16 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, + cpp = 4; + break; + default: +- DRM_ERROR("Bad tile buffer format\n"); ++ DRM_DEBUG("Bad tile buffer format\n"); + return -EINVAL; + } + } else { +- DRM_ERROR("Bad load/store buffer %d.\n", buffer); ++ DRM_DEBUG("Bad load/store buffer %d.\n", buffer); + return -EINVAL; + } + + if (surf->offset & 0xf) { +- DRM_ERROR("load/store buffer must be 16b aligned.\n"); ++ DRM_DEBUG("load/store buffer must be 16b aligned.\n"); + return -EINVAL; + } + +@@ -533,7 +533,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, + int cpp; + + if (surf->flags != 0) { +- DRM_ERROR("No flags supported on render config.\n"); ++ DRM_DEBUG("No flags supported on render config.\n"); + return -EINVAL; + } + +@@ -541,7 +541,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, + VC4_RENDER_CONFIG_FORMAT_MASK | + VC4_RENDER_CONFIG_MS_MODE_4X | + VC4_RENDER_CONFIG_DECIMATE_MODE_4X)) { +- DRM_ERROR("Unknown bits in render config: 0x%04x\n", ++ DRM_DEBUG("Unknown bits in render config: 0x%04x\n", + surf->bits); + return -EINVAL; + } +@@ -556,7 +556,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, + exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj; + + if (tiling > VC4_TILING_FORMAT_LT) { +- DRM_ERROR("Bad tiling format\n"); ++ DRM_DEBUG("Bad tiling format\n"); + return -EINVAL; + } + +@@ -569,7 +569,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, + cpp = 4; + break; + default: +- DRM_ERROR("Bad tile buffer format\n"); ++ DRM_DEBUG("Bad tile buffer format\n"); + return -EINVAL; + } + +@@ -590,7 +590,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) + + if (args->min_x_tile > args->max_x_tile || + args->min_y_tile > args->max_y_tile) { +- DRM_ERROR("Bad render tile set (%d,%d)-(%d,%d)\n", ++ DRM_DEBUG("Bad render tile set (%d,%d)-(%d,%d)\n", + args->min_x_tile, args->min_y_tile, + args->max_x_tile, args->max_y_tile); + return -EINVAL; +@@ -599,7 +599,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) + if (has_bin && + (args->max_x_tile > exec->bin_tiles_x || + args->max_y_tile > exec->bin_tiles_y)) { +- DRM_ERROR("Render tiles (%d,%d) outside of bin config " ++ DRM_DEBUG("Render tiles (%d,%d) outside of bin config " + "(%d,%d)\n", + args->max_x_tile, args->max_y_tile, + exec->bin_tiles_x, exec->bin_tiles_y); +@@ -642,7 +642,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) + */ + if (!setup.color_write && !setup.zs_write && + !setup.msaa_color_write && !setup.msaa_zs_write) { +- DRM_ERROR("RCL requires color or Z/S write\n"); ++ DRM_DEBUG("RCL requires color or Z/S write\n"); + return -EINVAL; + } + +diff --git a/drivers/gpu/drm/vc4/vc4_validate.c b/drivers/gpu/drm/vc4/vc4_validate.c +index 814b512c6b9a..2db485abb186 100644 +--- a/drivers/gpu/drm/vc4/vc4_validate.c ++++ b/drivers/gpu/drm/vc4/vc4_validate.c +@@ -109,7 +109,7 @@ vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) + struct vc4_bo *bo; + + if (hindex >= exec->bo_count) { +- DRM_ERROR("BO index %d greater than BO count %d\n", ++ DRM_DEBUG("BO index %d greater than BO count %d\n", + hindex, exec->bo_count); + return NULL; + } +@@ -117,7 +117,7 @@ vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) + bo = to_vc4_bo(&obj->base); + + if (bo->validated_shader) { +- DRM_ERROR("Trying to use shader BO as something other than " ++ DRM_DEBUG("Trying to use shader BO as something other than " + "a shader\n"); + return NULL; + } +@@ -172,7 +172,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, + * our math. + */ + if (width > 4096 || height > 4096) { +- DRM_ERROR("Surface dimensions (%d,%d) too large", ++ DRM_DEBUG("Surface dimensions (%d,%d) too large", + width, height); + return false; + } +@@ -191,7 +191,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, + aligned_height = round_up(height, utile_h); + break; + default: +- DRM_ERROR("buffer tiling %d unsupported\n", tiling_format); ++ DRM_DEBUG("buffer tiling %d unsupported\n", tiling_format); + return false; + } + +@@ -200,7 +200,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, + + if (size + offset < size || + size + offset > fbo->base.size) { +- DRM_ERROR("Overflow in %dx%d (%dx%d) fbo size (%d + %d > %zd)\n", ++ DRM_DEBUG("Overflow in %dx%d (%dx%d) fbo size (%d + %d > %zd)\n", + width, height, + aligned_width, aligned_height, + size, offset, fbo->base.size); +@@ -214,7 +214,7 @@ static int + validate_flush(VALIDATE_ARGS) + { + if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 1)) { +- DRM_ERROR("Bin CL must end with VC4_PACKET_FLUSH\n"); ++ DRM_DEBUG("Bin CL must end with VC4_PACKET_FLUSH\n"); + return -EINVAL; + } + exec->found_flush = true; +@@ -226,13 +226,13 @@ static int + validate_start_tile_binning(VALIDATE_ARGS) + { + if (exec->found_start_tile_binning_packet) { +- DRM_ERROR("Duplicate VC4_PACKET_START_TILE_BINNING\n"); ++ DRM_DEBUG("Duplicate VC4_PACKET_START_TILE_BINNING\n"); + return -EINVAL; + } + exec->found_start_tile_binning_packet = true; + + if (!exec->found_tile_binning_mode_config_packet) { +- DRM_ERROR("missing VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); ++ DRM_DEBUG("missing VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); + return -EINVAL; + } + +@@ -243,7 +243,7 @@ static int + validate_increment_semaphore(VALIDATE_ARGS) + { + if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 2)) { +- DRM_ERROR("Bin CL must end with " ++ DRM_DEBUG("Bin CL must end with " + "VC4_PACKET_INCREMENT_SEMAPHORE\n"); + return -EINVAL; + } +@@ -264,7 +264,7 @@ validate_indexed_prim_list(VALIDATE_ARGS) + + /* Check overflow condition */ + if (exec->shader_state_count == 0) { +- DRM_ERROR("shader state must precede primitives\n"); ++ DRM_DEBUG("shader state must precede primitives\n"); + return -EINVAL; + } + shader_state = &exec->shader_state[exec->shader_state_count - 1]; +@@ -281,7 +281,7 @@ validate_indexed_prim_list(VALIDATE_ARGS) + + if (offset > ib->base.size || + (ib->base.size - offset) / index_size < length) { +- DRM_ERROR("IB access overflow (%d + %d*%d > %zd)\n", ++ DRM_DEBUG("IB access overflow (%d + %d*%d > %zd)\n", + offset, length, index_size, ib->base.size); + return -EINVAL; + } +@@ -301,13 +301,13 @@ validate_gl_array_primitive(VALIDATE_ARGS) + + /* Check overflow condition */ + if (exec->shader_state_count == 0) { +- DRM_ERROR("shader state must precede primitives\n"); ++ DRM_DEBUG("shader state must precede primitives\n"); + return -EINVAL; + } + shader_state = &exec->shader_state[exec->shader_state_count - 1]; + + if (length + base_index < length) { +- DRM_ERROR("primitive vertex count overflow\n"); ++ DRM_DEBUG("primitive vertex count overflow\n"); + return -EINVAL; + } + max_index = length + base_index - 1; +@@ -324,7 +324,7 @@ validate_gl_shader_state(VALIDATE_ARGS) + uint32_t i = exec->shader_state_count++; + + if (i >= exec->shader_state_size) { +- DRM_ERROR("More requests for shader states than declared\n"); ++ DRM_DEBUG("More requests for shader states than declared\n"); + return -EINVAL; + } + +@@ -332,7 +332,7 @@ validate_gl_shader_state(VALIDATE_ARGS) + exec->shader_state[i].max_index = 0; + + if (exec->shader_state[i].addr & ~0xf) { +- DRM_ERROR("high bits set in GL shader rec reference\n"); ++ DRM_DEBUG("high bits set in GL shader rec reference\n"); + return -EINVAL; + } + +@@ -356,7 +356,7 @@ validate_tile_binning_config(VALIDATE_ARGS) + int bin_slot; + + if (exec->found_tile_binning_mode_config_packet) { +- DRM_ERROR("Duplicate VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); ++ DRM_DEBUG("Duplicate VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); + return -EINVAL; + } + exec->found_tile_binning_mode_config_packet = true; +@@ -368,14 +368,14 @@ validate_tile_binning_config(VALIDATE_ARGS) + + if (exec->bin_tiles_x == 0 || + exec->bin_tiles_y == 0) { +- DRM_ERROR("Tile binning config of %dx%d too small\n", ++ DRM_DEBUG("Tile binning config of %dx%d too small\n", + exec->bin_tiles_x, exec->bin_tiles_y); + return -EINVAL; + } + + if (flags & (VC4_BIN_CONFIG_DB_NON_MS | + VC4_BIN_CONFIG_TILE_BUFFER_64BIT)) { +- DRM_ERROR("unsupported binning config flags 0x%02x\n", flags); ++ DRM_DEBUG("unsupported binning config flags 0x%02x\n", flags); + return -EINVAL; + } + +@@ -493,20 +493,20 @@ vc4_validate_bin_cl(struct drm_device *dev, + const struct cmd_info *info; + + if (cmd >= ARRAY_SIZE(cmd_info)) { +- DRM_ERROR("0x%08x: packet %d out of bounds\n", ++ DRM_DEBUG("0x%08x: packet %d out of bounds\n", + src_offset, cmd); + return -EINVAL; + } + + info = &cmd_info[cmd]; + if (!info->name) { +- DRM_ERROR("0x%08x: packet %d invalid\n", ++ DRM_DEBUG("0x%08x: packet %d invalid\n", + src_offset, cmd); + return -EINVAL; + } + + if (src_offset + info->len > len) { +- DRM_ERROR("0x%08x: packet %d (%s) length 0x%08x " ++ DRM_DEBUG("0x%08x: packet %d (%s) length 0x%08x " + "exceeds bounds (0x%08x)\n", + src_offset, cmd, info->name, info->len, + src_offset + len); +@@ -519,7 +519,7 @@ vc4_validate_bin_cl(struct drm_device *dev, + if (info->func && info->func(exec, + dst_pkt + 1, + src_pkt + 1)) { +- DRM_ERROR("0x%08x: packet %d (%s) failed to validate\n", ++ DRM_DEBUG("0x%08x: packet %d (%s) failed to validate\n", + src_offset, cmd, info->name); + return -EINVAL; + } +@@ -537,7 +537,7 @@ vc4_validate_bin_cl(struct drm_device *dev, + exec->ct0ea = exec->ct0ca + dst_offset; + + if (!exec->found_start_tile_binning_packet) { +- DRM_ERROR("Bin CL missing VC4_PACKET_START_TILE_BINNING\n"); ++ DRM_DEBUG("Bin CL missing VC4_PACKET_START_TILE_BINNING\n"); + return -EINVAL; + } + +@@ -549,7 +549,7 @@ vc4_validate_bin_cl(struct drm_device *dev, + * semaphore increment. + */ + if (!exec->found_increment_semaphore_packet || !exec->found_flush) { +- DRM_ERROR("Bin CL missing VC4_PACKET_INCREMENT_SEMAPHORE + " ++ DRM_DEBUG("Bin CL missing VC4_PACKET_INCREMENT_SEMAPHORE + " + "VC4_PACKET_FLUSH\n"); + return -EINVAL; + } +@@ -588,11 +588,11 @@ reloc_tex(struct vc4_exec_info *exec, + uint32_t remaining_size = tex->base.size - p0; + + if (p0 > tex->base.size - 4) { +- DRM_ERROR("UBO offset greater than UBO size\n"); ++ DRM_DEBUG("UBO offset greater than UBO size\n"); + goto fail; + } + if (p1 > remaining_size - 4) { +- DRM_ERROR("UBO clamp would allow reads " ++ DRM_DEBUG("UBO clamp would allow reads " + "outside of UBO\n"); + goto fail; + } +@@ -612,14 +612,14 @@ reloc_tex(struct vc4_exec_info *exec, + if (VC4_GET_FIELD(p3, VC4_TEX_P2_PTYPE) == + VC4_TEX_P2_PTYPE_CUBE_MAP_STRIDE) { + if (cube_map_stride) { +- DRM_ERROR("Cube map stride set twice\n"); ++ DRM_DEBUG("Cube map stride set twice\n"); + goto fail; + } + + cube_map_stride = p3 & VC4_TEX_P2_CMST_MASK; + } + if (!cube_map_stride) { +- DRM_ERROR("Cube map stride not set\n"); ++ DRM_DEBUG("Cube map stride not set\n"); + goto fail; + } + } +@@ -660,7 +660,7 @@ reloc_tex(struct vc4_exec_info *exec, + case VC4_TEXTURE_TYPE_RGBA64: + case VC4_TEXTURE_TYPE_YUV422R: + default: +- DRM_ERROR("Texture format %d unsupported\n", type); ++ DRM_DEBUG("Texture format %d unsupported\n", type); + goto fail; + } + utile_w = utile_width(cpp); +@@ -713,7 +713,7 @@ reloc_tex(struct vc4_exec_info *exec, + level_size = aligned_width * cpp * aligned_height; + + if (offset < level_size) { +- DRM_ERROR("Level %d (%dx%d -> %dx%d) size %db " ++ DRM_DEBUG("Level %d (%dx%d -> %dx%d) size %db " + "overflowed buffer bounds (offset %d)\n", + i, level_width, level_height, + aligned_width, aligned_height, +@@ -764,7 +764,7 @@ validate_gl_shader_rec(struct drm_device *dev, + + nr_relocs = ARRAY_SIZE(shader_reloc_offsets) + nr_attributes; + if (nr_relocs * 4 > exec->shader_rec_size) { +- DRM_ERROR("overflowed shader recs reading %d handles " ++ DRM_DEBUG("overflowed shader recs reading %d handles " + "from %d bytes left\n", + nr_relocs, exec->shader_rec_size); + return -EINVAL; +@@ -774,7 +774,7 @@ validate_gl_shader_rec(struct drm_device *dev, + exec->shader_rec_size -= nr_relocs * 4; + + if (packet_size > exec->shader_rec_size) { +- DRM_ERROR("overflowed shader recs copying %db packet " ++ DRM_DEBUG("overflowed shader recs copying %db packet " + "from %d bytes left\n", + packet_size, exec->shader_rec_size); + return -EINVAL; +@@ -794,7 +794,7 @@ validate_gl_shader_rec(struct drm_device *dev, + + for (i = 0; i < shader_reloc_count; i++) { + if (src_handles[i] > exec->bo_count) { +- DRM_ERROR("Shader handle %d too big\n", src_handles[i]); ++ DRM_DEBUG("Shader handle %d too big\n", src_handles[i]); + return -EINVAL; + } + +@@ -810,13 +810,13 @@ validate_gl_shader_rec(struct drm_device *dev, + + if (((*(uint16_t *)pkt_u & VC4_SHADER_FLAG_FS_SINGLE_THREAD) == 0) != + to_vc4_bo(&bo[0]->base)->validated_shader->is_threaded) { +- DRM_ERROR("Thread mode of CL and FS do not match\n"); ++ DRM_DEBUG("Thread mode of CL and FS do not match\n"); + return -EINVAL; + } + + if (to_vc4_bo(&bo[1]->base)->validated_shader->is_threaded || + to_vc4_bo(&bo[2]->base)->validated_shader->is_threaded) { +- DRM_ERROR("cs and vs cannot be threaded\n"); ++ DRM_DEBUG("cs and vs cannot be threaded\n"); + return -EINVAL; + } + +@@ -831,7 +831,7 @@ validate_gl_shader_rec(struct drm_device *dev, + *(uint32_t *)(pkt_v + o) = bo[i]->paddr + src_offset; + + if (src_offset != 0) { +- DRM_ERROR("Shaders must be at offset 0 of " ++ DRM_DEBUG("Shaders must be at offset 0 of " + "the BO.\n"); + return -EINVAL; + } +@@ -842,7 +842,7 @@ validate_gl_shader_rec(struct drm_device *dev, + + if (validated_shader->uniforms_src_size > + exec->uniforms_size) { +- DRM_ERROR("Uniforms src buffer overflow\n"); ++ DRM_DEBUG("Uniforms src buffer overflow\n"); + return -EINVAL; + } + +@@ -900,7 +900,7 @@ validate_gl_shader_rec(struct drm_device *dev, + + if (vbo->base.size < offset || + vbo->base.size - offset < attr_size) { +- DRM_ERROR("BO offset overflow (%d + %d > %zu)\n", ++ DRM_DEBUG("BO offset overflow (%d + %d > %zu)\n", + offset, attr_size, vbo->base.size); + return -EINVAL; + } +@@ -909,7 +909,7 @@ validate_gl_shader_rec(struct drm_device *dev, + max_index = ((vbo->base.size - offset - attr_size) / + stride); + if (state->max_index > max_index) { +- DRM_ERROR("primitives use index %d out of " ++ DRM_DEBUG("primitives use index %d out of " + "supplied %d\n", + state->max_index, max_index); + return -EINVAL; +diff --git a/drivers/gpu/drm/vc4/vc4_validate_shaders.c b/drivers/gpu/drm/vc4/vc4_validate_shaders.c +index 0b2df5c6efb4..d3f15bf60900 100644 +--- a/drivers/gpu/drm/vc4/vc4_validate_shaders.c ++++ b/drivers/gpu/drm/vc4/vc4_validate_shaders.c +@@ -200,7 +200,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, + uint32_t clamp_reg, clamp_offset; + + if (sig == QPU_SIG_SMALL_IMM) { +- DRM_ERROR("direct TMU read used small immediate\n"); ++ DRM_DEBUG("direct TMU read used small immediate\n"); + return false; + } + +@@ -209,7 +209,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, + */ + if (is_mul || + QPU_GET_FIELD(inst, QPU_OP_ADD) != QPU_A_ADD) { +- DRM_ERROR("direct TMU load wasn't an add\n"); ++ DRM_DEBUG("direct TMU load wasn't an add\n"); + return false; + } + +@@ -220,13 +220,13 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, + */ + clamp_reg = raddr_add_a_to_live_reg_index(inst); + if (clamp_reg == ~0) { +- DRM_ERROR("direct TMU load wasn't clamped\n"); ++ DRM_DEBUG("direct TMU load wasn't clamped\n"); + return false; + } + + clamp_offset = validation_state->live_min_clamp_offsets[clamp_reg]; + if (clamp_offset == ~0) { +- DRM_ERROR("direct TMU load wasn't clamped\n"); ++ DRM_DEBUG("direct TMU load wasn't clamped\n"); + return false; + } + +@@ -238,7 +238,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, + + if (!(add_b == QPU_MUX_A && raddr_a == QPU_R_UNIF) && + !(add_b == QPU_MUX_B && raddr_b == QPU_R_UNIF)) { +- DRM_ERROR("direct TMU load didn't add to a uniform\n"); ++ DRM_DEBUG("direct TMU load didn't add to a uniform\n"); + return false; + } + +@@ -246,14 +246,14 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, + } else { + if (raddr_a == QPU_R_UNIF || (sig != QPU_SIG_SMALL_IMM && + raddr_b == QPU_R_UNIF)) { +- DRM_ERROR("uniform read in the same instruction as " ++ DRM_DEBUG("uniform read in the same instruction as " + "texture setup.\n"); + return false; + } + } + + if (validation_state->tmu_write_count[tmu] >= 4) { +- DRM_ERROR("TMU%d got too many parameters before dispatch\n", ++ DRM_DEBUG("TMU%d got too many parameters before dispatch\n", + tmu); + return false; + } +@@ -265,7 +265,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, + */ + if (!is_direct) { + if (validation_state->needs_uniform_address_update) { +- DRM_ERROR("Texturing with undefined uniform address\n"); ++ DRM_DEBUG("Texturing with undefined uniform address\n"); + return false; + } + +@@ -336,35 +336,35 @@ validate_uniform_address_write(struct vc4_validated_shader_info *validated_shade + case QPU_SIG_LOAD_TMU1: + break; + default: +- DRM_ERROR("uniforms address change must be " ++ DRM_DEBUG("uniforms address change must be " + "normal math\n"); + return false; + } + + if (is_mul || QPU_GET_FIELD(inst, QPU_OP_ADD) != QPU_A_ADD) { +- DRM_ERROR("Uniform address reset must be an ADD.\n"); ++ DRM_DEBUG("Uniform address reset must be an ADD.\n"); + return false; + } + + if (QPU_GET_FIELD(inst, QPU_COND_ADD) != QPU_COND_ALWAYS) { +- DRM_ERROR("Uniform address reset must be unconditional.\n"); ++ DRM_DEBUG("Uniform address reset must be unconditional.\n"); + return false; + } + + if (QPU_GET_FIELD(inst, QPU_PACK) != QPU_PACK_A_NOP && + !(inst & QPU_PM)) { +- DRM_ERROR("No packing allowed on uniforms reset\n"); ++ DRM_DEBUG("No packing allowed on uniforms reset\n"); + return false; + } + + if (add_lri == -1) { +- DRM_ERROR("First argument of uniform address write must be " ++ DRM_DEBUG("First argument of uniform address write must be " + "an immediate value.\n"); + return false; + } + + if (validation_state->live_immediates[add_lri] != expected_offset) { +- DRM_ERROR("Resetting uniforms with offset %db instead of %db\n", ++ DRM_DEBUG("Resetting uniforms with offset %db instead of %db\n", + validation_state->live_immediates[add_lri], + expected_offset); + return false; +@@ -372,7 +372,7 @@ validate_uniform_address_write(struct vc4_validated_shader_info *validated_shade + + if (!(add_b == QPU_MUX_A && raddr_a == QPU_R_UNIF) && + !(add_b == QPU_MUX_B && raddr_b == QPU_R_UNIF)) { +- DRM_ERROR("Second argument of uniform address write must be " ++ DRM_DEBUG("Second argument of uniform address write must be " + "a uniform.\n"); + return false; + } +@@ -417,7 +417,7 @@ check_reg_write(struct vc4_validated_shader_info *validated_shader, + switch (waddr) { + case QPU_W_UNIFORMS_ADDRESS: + if (is_b) { +- DRM_ERROR("relative uniforms address change " ++ DRM_DEBUG("relative uniforms address change " + "unsupported\n"); + return false; + } +@@ -452,11 +452,11 @@ check_reg_write(struct vc4_validated_shader_info *validated_shader, + /* XXX: I haven't thought about these, so don't support them + * for now. + */ +- DRM_ERROR("Unsupported waddr %d\n", waddr); ++ DRM_DEBUG("Unsupported waddr %d\n", waddr); + return false; + + case QPU_W_VPM_ADDR: +- DRM_ERROR("General VPM DMA unsupported\n"); ++ DRM_DEBUG("General VPM DMA unsupported\n"); + return false; + + case QPU_W_VPM: +@@ -559,7 +559,7 @@ check_instruction_writes(struct vc4_validated_shader_info *validated_shader, + bool ok; + + if (is_tmu_write(waddr_add) && is_tmu_write(waddr_mul)) { +- DRM_ERROR("ADD and MUL both set up textures\n"); ++ DRM_DEBUG("ADD and MUL both set up textures\n"); + return false; + } + +@@ -588,7 +588,7 @@ check_branch(uint64_t inst, + * there's no need for it. + */ + if (waddr_add != QPU_W_NOP || waddr_mul != QPU_W_NOP) { +- DRM_ERROR("branch instruction at %d wrote a register.\n", ++ DRM_DEBUG("branch instruction at %d wrote a register.\n", + validation_state->ip); + return false; + } +@@ -614,7 +614,7 @@ check_instruction_reads(struct vc4_validated_shader_info *validated_shader, + validated_shader->uniforms_size += 4; + + if (validation_state->needs_uniform_address_update) { +- DRM_ERROR("Uniform read with undefined uniform " ++ DRM_DEBUG("Uniform read with undefined uniform " + "address\n"); + return false; + } +@@ -660,19 +660,19 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) + continue; + + if (ip - last_branch < 4) { +- DRM_ERROR("Branch at %d during delay slots\n", ip); ++ DRM_DEBUG("Branch at %d during delay slots\n", ip); + return false; + } + last_branch = ip; + + if (inst & QPU_BRANCH_REG) { +- DRM_ERROR("branching from register relative " ++ DRM_DEBUG("branching from register relative " + "not supported\n"); + return false; + } + + if (!(inst & QPU_BRANCH_REL)) { +- DRM_ERROR("relative branching required\n"); ++ DRM_DEBUG("relative branching required\n"); + return false; + } + +@@ -682,13 +682,13 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) + * end of the shader object. + */ + if (branch_imm % sizeof(inst) != 0) { +- DRM_ERROR("branch target not aligned\n"); ++ DRM_DEBUG("branch target not aligned\n"); + return false; + } + + branch_target_ip = after_delay_ip + (branch_imm >> 3); + if (branch_target_ip >= validation_state->max_ip) { +- DRM_ERROR("Branch at %d outside of shader (ip %d/%d)\n", ++ DRM_DEBUG("Branch at %d outside of shader (ip %d/%d)\n", + ip, branch_target_ip, + validation_state->max_ip); + return false; +@@ -699,7 +699,7 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) + * the shader. + */ + if (after_delay_ip >= validation_state->max_ip) { +- DRM_ERROR("Branch at %d continues past shader end " ++ DRM_DEBUG("Branch at %d continues past shader end " + "(%d/%d)\n", + ip, after_delay_ip, validation_state->max_ip); + return false; +@@ -709,7 +709,7 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) + } + + if (max_branch_target > validation_state->max_ip - 3) { +- DRM_ERROR("Branch landed after QPU_SIG_PROG_END"); ++ DRM_DEBUG("Branch landed after QPU_SIG_PROG_END"); + return false; + } + +@@ -750,7 +750,7 @@ vc4_handle_branch_target(struct vc4_shader_validation_state *validation_state) + return true; + + if (texturing_in_progress(validation_state)) { +- DRM_ERROR("Branch target landed during TMU setup\n"); ++ DRM_DEBUG("Branch target landed during TMU setup\n"); + return false; + } + +@@ -837,7 +837,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) + case QPU_SIG_LAST_THREAD_SWITCH: + if (!check_instruction_writes(validated_shader, + &validation_state)) { +- DRM_ERROR("Bad write at ip %d\n", ip); ++ DRM_DEBUG("Bad write at ip %d\n", ip); + goto fail; + } + +@@ -855,7 +855,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) + validated_shader->is_threaded = true; + + if (ip < last_thread_switch_ip + 3) { +- DRM_ERROR("Thread switch too soon after " ++ DRM_DEBUG("Thread switch too soon after " + "last switch at ip %d\n", ip); + goto fail; + } +@@ -867,7 +867,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) + case QPU_SIG_LOAD_IMM: + if (!check_instruction_writes(validated_shader, + &validation_state)) { +- DRM_ERROR("Bad LOAD_IMM write at ip %d\n", ip); ++ DRM_DEBUG("Bad LOAD_IMM write at ip %d\n", ip); + goto fail; + } + break; +@@ -878,14 +878,14 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) + goto fail; + + if (ip < last_thread_switch_ip + 3) { +- DRM_ERROR("Branch in thread switch at ip %d", ++ DRM_DEBUG("Branch in thread switch at ip %d", + ip); + goto fail; + } + + break; + default: +- DRM_ERROR("Unsupported QPU signal %d at " ++ DRM_DEBUG("Unsupported QPU signal %d at " + "instruction %d\n", sig, ip); + goto fail; + } +@@ -898,7 +898,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) + } + + if (ip == validation_state.max_ip) { +- DRM_ERROR("shader failed to terminate before " ++ DRM_DEBUG("shader failed to terminate before " + "shader BO end at %zd\n", + shader_obj->base.size); + goto fail; +@@ -907,7 +907,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) + /* Might corrupt other thread */ + if (validated_shader->is_threaded && + validation_state.all_registers_used) { +- DRM_ERROR("Shader uses threading, but uses the upper " ++ DRM_DEBUG("Shader uses threading, but uses the upper " + "half of the registers, too\n"); + goto fail; + } +-- +2.13.5 + +From 28b369f5abc790f56e668869d88f261ca7a27c55 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 8 Aug 2017 13:56:05 -0700 +Subject: [PATCH 2/6] drm/vc4: Fix leak of HDMI EDID + +We don't keep a pointer to it around anywhere, so it's our job to free +it. + +Cc: Stefan Wahren +Link: https://github.com/anholt/linux/issues/101 +Fixes: c8b75bca92cb ("drm/vc4: Add KMS support for Raspberry Pi.") +Signed-off-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20170808205605.4432-1-eric@anholt.net +Reviewed-by: Daniel Vetter +Tested-by: Stefan Wahren +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index ed63d4e85762..f7803fd7f47c 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -260,6 +260,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) + drm_mode_connector_update_edid_property(connector, edid); + ret = drm_add_edid_modes(connector, edid); + drm_edid_to_eld(connector, edid); ++ kfree(edid); + + return ret; + } +-- +2.13.5 + +From 3b688b6d347f777a8e86165decc33198b063b8c0 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 25 Jul 2017 11:27:16 -0700 +Subject: [PATCH 3/6] drm/vc4: Start using u64_to_user_ptr. + +Chris Wilson pointed out this little cleanup in a review of new code, +so let's fix up the code I was copying from. + +Signed-off-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-1-eric@anholt.net +Reviewed-by: Daniel Vetter +--- + drivers/gpu/drm/vc4/vc4_gem.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c +index a3e45e67f417..8b551bc630c4 100644 +--- a/drivers/gpu/drm/vc4/vc4_gem.c ++++ b/drivers/gpu/drm/vc4/vc4_gem.c +@@ -119,7 +119,7 @@ vc4_get_hang_state_ioctl(struct drm_device *dev, void *data, + bo_state[i].size = vc4_bo->base.base.size; + } + +- if (copy_to_user((void __user *)(uintptr_t)get_state->bo, ++ if (copy_to_user(u64_to_user_ptr(get_state->bo), + bo_state, + state->bo_count * sizeof(*bo_state))) + ret = -EFAULT; +@@ -678,8 +678,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, + goto fail; + } + +- if (copy_from_user(handles, +- (void __user *)(uintptr_t)args->bo_handles, ++ if (copy_from_user(handles, u64_to_user_ptr(args->bo_handles), + exec->bo_count * sizeof(uint32_t))) { + ret = -EFAULT; + DRM_ERROR("Failed to copy in GEM handles\n"); +@@ -755,21 +754,21 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) + exec->shader_state_size = args->shader_rec_count; + + if (copy_from_user(bin, +- (void __user *)(uintptr_t)args->bin_cl, ++ u64_to_user_ptr(args->bin_cl), + args->bin_cl_size)) { + ret = -EFAULT; + goto fail; + } + + if (copy_from_user(exec->shader_rec_u, +- (void __user *)(uintptr_t)args->shader_rec, ++ u64_to_user_ptr(args->shader_rec), + args->shader_rec_size)) { + ret = -EFAULT; + goto fail; + } + + if (copy_from_user(exec->uniforms_u, +- (void __user *)(uintptr_t)args->uniforms, ++ u64_to_user_ptr(args->uniforms), + args->uniforms_size)) { + ret = -EFAULT; + goto fail; +-- +2.13.5 + +From da81d76bce216c160d2924a52e362b160bbb6ca1 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 25 Jul 2017 11:27:17 -0700 +Subject: [PATCH 4/6] drm/vc4: Add an ioctl for labeling GEM BOs for summary + stats + +This has proven immensely useful for debugging memory leaks and +overallocation (which is a rather serious concern on the platform, +given that we typically run at about 256MB of CMA out of up to 1GB +total memory, with framebuffers that are about 8MB ecah). + +The state of the art without this is to dump debug logs from every GL +application, guess as to kernel allocations based on bo_stats, and try +to merge that all together into a global picture of memory allocation +state. With this, you can add a couple of calls to the debug build of +the 3D driver and get a pretty detailed view of GPU memory usage from +/debug/dri/0/bo_stats (or when we debug print to dmesg on allocation +failure). + +The Mesa side currently labels at the gallium resource level (so you +see that a 1920x20 pixmap has been created, presumably for the window +system panel), but we could extend that to be even more useful with +glObjectLabel() names being sent all the way down to the kernel. + +(partial) example of sorted debugfs output with Mesa labeling all +resources: + + kernel BO cache: 16392kb BOs (3) + tiling shadow 1920x1080: 8160kb BOs (1) + resource 1920x1080@32/0: 8160kb BOs (1) +scanout resource 1920x1080@32/0: 8100kb BOs (1) + kernel: 8100kb BOs (1) + +v2: Use strndup_user(), use lockdep assertion instead of just a + comment, fix an array[-1] reference, extend comment about name + freeing. + +Signed-off-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-2-eric@anholt.net +Reviewed-by: Chris Wilson +--- + drivers/gpu/drm/vc4/vc4_bo.c | 258 ++++++++++++++++++++++++++++-------- + drivers/gpu/drm/vc4/vc4_drv.c | 8 +- + drivers/gpu/drm/vc4/vc4_drv.h | 39 +++++- + drivers/gpu/drm/vc4/vc4_gem.c | 2 +- + drivers/gpu/drm/vc4/vc4_render_cl.c | 2 +- + drivers/gpu/drm/vc4/vc4_v3d.c | 3 +- + include/uapi/drm/vc4_drm.h | 11 ++ + 7 files changed, 257 insertions(+), 66 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c +index ede80199001d..27c4a927311f 100644 +--- a/drivers/gpu/drm/vc4/vc4_bo.c ++++ b/drivers/gpu/drm/vc4/vc4_bo.c +@@ -24,21 +24,35 @@ + #include "vc4_drv.h" + #include "uapi/drm/vc4_drm.h" + ++static const char * const bo_type_names[] = { ++ "kernel", ++ "V3D", ++ "V3D shader", ++ "dumb", ++ "binner", ++ "RCL", ++ "BCL", ++ "kernel BO cache", ++}; ++ ++static bool is_user_label(int label) ++{ ++ return label >= VC4_BO_TYPE_COUNT; ++} ++ + static void vc4_bo_stats_dump(struct vc4_dev *vc4) + { +- DRM_INFO("num bos allocated: %d\n", +- vc4->bo_stats.num_allocated); +- DRM_INFO("size bos allocated: %dkb\n", +- vc4->bo_stats.size_allocated / 1024); +- DRM_INFO("num bos used: %d\n", +- vc4->bo_stats.num_allocated - vc4->bo_stats.num_cached); +- DRM_INFO("size bos used: %dkb\n", +- (vc4->bo_stats.size_allocated - +- vc4->bo_stats.size_cached) / 1024); +- DRM_INFO("num bos cached: %d\n", +- vc4->bo_stats.num_cached); +- DRM_INFO("size bos cached: %dkb\n", +- vc4->bo_stats.size_cached / 1024); ++ int i; ++ ++ for (i = 0; i < vc4->num_labels; i++) { ++ if (!vc4->bo_labels[i].num_allocated) ++ continue; ++ ++ DRM_INFO("%30s: %6dkb BOs (%d)\n", ++ vc4->bo_labels[i].name, ++ vc4->bo_labels[i].size_allocated / 1024, ++ vc4->bo_labels[i].num_allocated); ++ } + } + + #ifdef CONFIG_DEBUG_FS +@@ -47,30 +61,103 @@ int vc4_bo_stats_debugfs(struct seq_file *m, void *unused) + struct drm_info_node *node = (struct drm_info_node *)m->private; + struct drm_device *dev = node->minor->dev; + struct vc4_dev *vc4 = to_vc4_dev(dev); +- struct vc4_bo_stats stats; ++ int i; + +- /* Take a snapshot of the current stats with the lock held. */ + mutex_lock(&vc4->bo_lock); +- stats = vc4->bo_stats; ++ for (i = 0; i < vc4->num_labels; i++) { ++ if (!vc4->bo_labels[i].num_allocated) ++ continue; ++ ++ seq_printf(m, "%30s: %6dkb BOs (%d)\n", ++ vc4->bo_labels[i].name, ++ vc4->bo_labels[i].size_allocated / 1024, ++ vc4->bo_labels[i].num_allocated); ++ } + mutex_unlock(&vc4->bo_lock); + +- seq_printf(m, "num bos allocated: %d\n", +- stats.num_allocated); +- seq_printf(m, "size bos allocated: %dkb\n", +- stats.size_allocated / 1024); +- seq_printf(m, "num bos used: %d\n", +- stats.num_allocated - stats.num_cached); +- seq_printf(m, "size bos used: %dkb\n", +- (stats.size_allocated - stats.size_cached) / 1024); +- seq_printf(m, "num bos cached: %d\n", +- stats.num_cached); +- seq_printf(m, "size bos cached: %dkb\n", +- stats.size_cached / 1024); +- + return 0; + } + #endif + ++/* Takes ownership of *name and returns the appropriate slot for it in ++ * the bo_labels[] array, extending it as necessary. ++ * ++ * This is inefficient and could use a hash table instead of walking ++ * an array and strcmp()ing. However, the assumption is that user ++ * labeling will be infrequent (scanout buffers and other long-lived ++ * objects, or debug driver builds), so we can live with it for now. ++ */ ++static int vc4_get_user_label(struct vc4_dev *vc4, const char *name) ++{ ++ int i; ++ int free_slot = -1; ++ ++ for (i = 0; i < vc4->num_labels; i++) { ++ if (!vc4->bo_labels[i].name) { ++ free_slot = i; ++ } else if (strcmp(vc4->bo_labels[i].name, name) == 0) { ++ kfree(name); ++ return i; ++ } ++ } ++ ++ if (free_slot != -1) { ++ WARN_ON(vc4->bo_labels[free_slot].num_allocated != 0); ++ vc4->bo_labels[free_slot].name = name; ++ return free_slot; ++ } else { ++ u32 new_label_count = vc4->num_labels + 1; ++ struct vc4_label *new_labels = ++ krealloc(vc4->bo_labels, ++ new_label_count * sizeof(*new_labels), ++ GFP_KERNEL); ++ ++ if (!new_labels) { ++ kfree(name); ++ return -1; ++ } ++ ++ free_slot = vc4->num_labels; ++ vc4->bo_labels = new_labels; ++ vc4->num_labels = new_label_count; ++ ++ vc4->bo_labels[free_slot].name = name; ++ vc4->bo_labels[free_slot].num_allocated = 0; ++ vc4->bo_labels[free_slot].size_allocated = 0; ++ ++ return free_slot; ++ } ++} ++ ++static void vc4_bo_set_label(struct drm_gem_object *gem_obj, int label) ++{ ++ struct vc4_bo *bo = to_vc4_bo(gem_obj); ++ struct vc4_dev *vc4 = to_vc4_dev(gem_obj->dev); ++ ++ lockdep_assert_held(&vc4->bo_lock); ++ ++ if (label != -1) { ++ vc4->bo_labels[label].num_allocated++; ++ vc4->bo_labels[label].size_allocated += gem_obj->size; ++ } ++ ++ vc4->bo_labels[bo->label].num_allocated--; ++ vc4->bo_labels[bo->label].size_allocated -= gem_obj->size; ++ ++ if (vc4->bo_labels[bo->label].num_allocated == 0 && ++ is_user_label(bo->label)) { ++ /* Free user BO label slots on last unreference. ++ * Slots are just where we track the stats for a given ++ * name, and once a name is unused we can reuse that ++ * slot. ++ */ ++ kfree(vc4->bo_labels[bo->label].name); ++ vc4->bo_labels[bo->label].name = NULL; ++ } ++ ++ bo->label = label; ++} ++ + static uint32_t bo_page_index(size_t size) + { + return (size / PAGE_SIZE) - 1; +@@ -80,7 +167,8 @@ static uint32_t bo_page_index(size_t size) + static void vc4_bo_destroy(struct vc4_bo *bo) + { + struct drm_gem_object *obj = &bo->base.base; +- struct vc4_dev *vc4 = to_vc4_dev(obj->dev); ++ ++ vc4_bo_set_label(obj, -1); + + if (bo->validated_shader) { + kfree(bo->validated_shader->texture_samples); +@@ -88,9 +176,6 @@ static void vc4_bo_destroy(struct vc4_bo *bo) + bo->validated_shader = NULL; + } + +- vc4->bo_stats.num_allocated--; +- vc4->bo_stats.size_allocated -= obj->size; +- + reservation_object_fini(&bo->_resv); + + drm_gem_cma_free_object(obj); +@@ -99,12 +184,6 @@ static void vc4_bo_destroy(struct vc4_bo *bo) + /* Must be called with bo_lock held. */ + static void vc4_bo_remove_from_cache(struct vc4_bo *bo) + { +- struct drm_gem_object *obj = &bo->base.base; +- struct vc4_dev *vc4 = to_vc4_dev(obj->dev); +- +- vc4->bo_stats.num_cached--; +- vc4->bo_stats.size_cached -= obj->size; +- + list_del(&bo->unref_head); + list_del(&bo->size_head); + } +@@ -165,7 +244,8 @@ static void vc4_bo_cache_purge(struct drm_device *dev) + } + + static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev, +- uint32_t size) ++ uint32_t size, ++ enum vc4_kernel_bo_type type) + { + struct vc4_dev *vc4 = to_vc4_dev(dev); + uint32_t page_index = bo_page_index(size); +@@ -186,6 +266,8 @@ static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev, + kref_init(&bo->base.base.refcount); + + out: ++ if (bo) ++ vc4_bo_set_label(&bo->base.base, type); + mutex_unlock(&vc4->bo_lock); + return bo; + } +@@ -208,8 +290,9 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size) + return ERR_PTR(-ENOMEM); + + mutex_lock(&vc4->bo_lock); +- vc4->bo_stats.num_allocated++; +- vc4->bo_stats.size_allocated += size; ++ bo->label = VC4_BO_TYPE_KERNEL; ++ vc4->bo_labels[VC4_BO_TYPE_KERNEL].num_allocated++; ++ vc4->bo_labels[VC4_BO_TYPE_KERNEL].size_allocated += size; + mutex_unlock(&vc4->bo_lock); + bo->resv = &bo->_resv; + reservation_object_init(bo->resv); +@@ -218,7 +301,7 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size) + } + + struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, +- bool allow_unzeroed) ++ bool allow_unzeroed, enum vc4_kernel_bo_type type) + { + size_t size = roundup(unaligned_size, PAGE_SIZE); + struct vc4_dev *vc4 = to_vc4_dev(dev); +@@ -229,7 +312,7 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, + return ERR_PTR(-EINVAL); + + /* First, try to get a vc4_bo from the kernel BO cache. */ +- bo = vc4_bo_get_from_cache(dev, size); ++ bo = vc4_bo_get_from_cache(dev, size, type); + if (bo) { + if (!allow_unzeroed) + memset(bo->base.vaddr, 0, bo->base.base.size); +@@ -251,7 +334,13 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, + return ERR_PTR(-ENOMEM); + } + } +- return to_vc4_bo(&cma_obj->base); ++ bo = to_vc4_bo(&cma_obj->base); ++ ++ mutex_lock(&vc4->bo_lock); ++ vc4_bo_set_label(&cma_obj->base, type); ++ mutex_unlock(&vc4->bo_lock); ++ ++ return bo; + } + + int vc4_dumb_create(struct drm_file *file_priv, +@@ -268,7 +357,7 @@ int vc4_dumb_create(struct drm_file *file_priv, + if (args->size < args->pitch * args->height) + args->size = args->pitch * args->height; + +- bo = vc4_bo_create(dev, args->size, false); ++ bo = vc4_bo_create(dev, args->size, false, VC4_BO_TYPE_DUMB); + if (IS_ERR(bo)) + return PTR_ERR(bo); + +@@ -348,8 +437,7 @@ void vc4_free_object(struct drm_gem_object *gem_bo) + list_add(&bo->size_head, cache_list); + list_add(&bo->unref_head, &vc4->bo_cache.time_list); + +- vc4->bo_stats.num_cached++; +- vc4->bo_stats.size_cached += gem_bo->size; ++ vc4_bo_set_label(&bo->base.base, VC4_BO_TYPE_KERNEL_CACHE); + + vc4_bo_cache_free_old(dev); + +@@ -483,7 +571,7 @@ int vc4_create_bo_ioctl(struct drm_device *dev, void *data, + * We can't allocate from the BO cache, because the BOs don't + * get zeroed, and that might leak data between users. + */ +- bo = vc4_bo_create(dev, args->size, false); ++ bo = vc4_bo_create(dev, args->size, false, VC4_BO_TYPE_V3D); + if (IS_ERR(bo)) + return PTR_ERR(bo); + +@@ -536,7 +624,7 @@ vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, + return -EINVAL; + } + +- bo = vc4_bo_create(dev, args->size, true); ++ bo = vc4_bo_create(dev, args->size, true, VC4_BO_TYPE_V3D_SHADER); + if (IS_ERR(bo)) + return PTR_ERR(bo); + +@@ -651,9 +739,24 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, + return 0; + } + +-void vc4_bo_cache_init(struct drm_device *dev) ++int vc4_bo_cache_init(struct drm_device *dev) + { + struct vc4_dev *vc4 = to_vc4_dev(dev); ++ int i; ++ ++ /* Create the initial set of BO labels that the kernel will ++ * use. This lets us avoid a bunch of string reallocation in ++ * the kernel's draw and BO allocation paths. ++ */ ++ vc4->bo_labels = kcalloc(VC4_BO_TYPE_COUNT, sizeof(*vc4->bo_labels), ++ GFP_KERNEL); ++ if (!vc4->bo_labels) ++ return -ENOMEM; ++ vc4->num_labels = VC4_BO_TYPE_COUNT; ++ ++ BUILD_BUG_ON(ARRAY_SIZE(bo_type_names) != VC4_BO_TYPE_COUNT); ++ for (i = 0; i < VC4_BO_TYPE_COUNT; i++) ++ vc4->bo_labels[i].name = bo_type_names[i]; + + mutex_init(&vc4->bo_lock); + +@@ -663,19 +766,66 @@ void vc4_bo_cache_init(struct drm_device *dev) + setup_timer(&vc4->bo_cache.time_timer, + vc4_bo_cache_time_timer, + (unsigned long)dev); ++ ++ return 0; + } + + void vc4_bo_cache_destroy(struct drm_device *dev) + { + struct vc4_dev *vc4 = to_vc4_dev(dev); ++ int i; + + del_timer(&vc4->bo_cache.time_timer); + cancel_work_sync(&vc4->bo_cache.time_work); + + vc4_bo_cache_purge(dev); + +- if (vc4->bo_stats.num_allocated) { +- DRM_ERROR("Destroying BO cache while BOs still allocated:\n"); +- vc4_bo_stats_dump(vc4); ++ for (i = 0; i < vc4->num_labels; i++) { ++ if (vc4->bo_labels[i].num_allocated) { ++ DRM_ERROR("Destroying BO cache with %d %s " ++ "BOs still allocated\n", ++ vc4->bo_labels[i].num_allocated, ++ vc4->bo_labels[i].name); ++ } ++ ++ if (is_user_label(i)) ++ kfree(vc4->bo_labels[i].name); + } ++ kfree(vc4->bo_labels); ++} ++ ++int vc4_label_bo_ioctl(struct drm_device *dev, void *data, ++ struct drm_file *file_priv) ++{ ++ struct vc4_dev *vc4 = to_vc4_dev(dev); ++ struct drm_vc4_label_bo *args = data; ++ char *name; ++ struct drm_gem_object *gem_obj; ++ int ret = 0, label; ++ ++ if (!args->len) ++ return -EINVAL; ++ ++ name = strndup_user(u64_to_user_ptr(args->name), args->len + 1); ++ if (IS_ERR(name)) ++ return PTR_ERR(name); ++ ++ gem_obj = drm_gem_object_lookup(file_priv, args->handle); ++ if (!gem_obj) { ++ DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); ++ kfree(name); ++ return -ENOENT; ++ } ++ ++ mutex_lock(&vc4->bo_lock); ++ label = vc4_get_user_label(vc4, name); ++ if (label != -1) ++ vc4_bo_set_label(gem_obj, label); ++ else ++ ret = -ENOMEM; ++ mutex_unlock(&vc4->bo_lock); ++ ++ drm_gem_object_unreference_unlocked(gem_obj); ++ ++ return ret; + } +diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c +index c6b487c3d2b7..75c1f50a7b5d 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.c ++++ b/drivers/gpu/drm/vc4/vc4_drv.c +@@ -140,6 +140,7 @@ static const struct drm_ioctl_desc vc4_drm_ioctls[] = { + DRM_IOCTL_DEF_DRV(VC4_GET_PARAM, vc4_get_param_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VC4_SET_TILING, vc4_set_tiling_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(VC4_GET_TILING, vc4_get_tiling_ioctl, DRM_RENDER_ALLOW), ++ DRM_IOCTL_DEF_DRV(VC4_LABEL_BO, vc4_label_bo_ioctl, DRM_RENDER_ALLOW), + }; + + static struct drm_driver vc4_drm_driver = { +@@ -257,7 +258,9 @@ static int vc4_drm_bind(struct device *dev) + vc4->dev = drm; + drm->dev_private = vc4; + +- vc4_bo_cache_init(drm); ++ ret = vc4_bo_cache_init(drm); ++ if (ret) ++ goto dev_unref; + + drm_mode_config_init(drm); + +@@ -281,8 +284,9 @@ static int vc4_drm_bind(struct device *dev) + component_unbind_all(dev, drm); + gem_destroy: + vc4_gem_destroy(drm); +- drm_dev_unref(drm); + vc4_bo_cache_destroy(drm); ++dev_unref: ++ drm_dev_unref(drm); + return ret; + } + +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index df22698d62ee..75d9957cb76d 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -11,6 +11,24 @@ + #include + #include + ++/* Don't forget to update vc4_bo.c: bo_type_names[] when adding to ++ * this. ++ */ ++enum vc4_kernel_bo_type { ++ /* Any kernel allocation (gem_create_object hook) before it ++ * gets another type set. ++ */ ++ VC4_BO_TYPE_KERNEL, ++ VC4_BO_TYPE_V3D, ++ VC4_BO_TYPE_V3D_SHADER, ++ VC4_BO_TYPE_DUMB, ++ VC4_BO_TYPE_BIN, ++ VC4_BO_TYPE_RCL, ++ VC4_BO_TYPE_BCL, ++ VC4_BO_TYPE_KERNEL_CACHE, ++ VC4_BO_TYPE_COUNT ++}; ++ + struct vc4_dev { + struct drm_device *dev; + +@@ -46,14 +64,14 @@ struct vc4_dev { + struct timer_list time_timer; + } bo_cache; + +- struct vc4_bo_stats { ++ u32 num_labels; ++ struct vc4_label { ++ const char *name; + u32 num_allocated; + u32 size_allocated; +- u32 num_cached; +- u32 size_cached; +- } bo_stats; ++ } *bo_labels; + +- /* Protects bo_cache and the BO stats. */ ++ /* Protects bo_cache and bo_labels. */ + struct mutex bo_lock; + + uint64_t dma_fence_context; +@@ -169,6 +187,11 @@ struct vc4_bo { + /* normally (resv == &_resv) except for imported bo's */ + struct reservation_object *resv; + struct reservation_object _resv; ++ ++ /* One of enum vc4_kernel_bo_type, or VC4_BO_TYPE_COUNT + i ++ * for user-allocated labels. ++ */ ++ int label; + }; + + static inline struct vc4_bo * +@@ -460,7 +483,7 @@ struct vc4_validated_shader_info { + struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size); + void vc4_free_object(struct drm_gem_object *gem_obj); + struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size, +- bool from_cache); ++ bool from_cache, enum vc4_kernel_bo_type type); + int vc4_dumb_create(struct drm_file *file_priv, + struct drm_device *dev, + struct drm_mode_create_dumb *args); +@@ -478,6 +501,8 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); + int vc4_get_hang_state_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); ++int vc4_label_bo_ioctl(struct drm_device *dev, void *data, ++ struct drm_file *file_priv); + int vc4_mmap(struct file *filp, struct vm_area_struct *vma); + struct reservation_object *vc4_prime_res_obj(struct drm_gem_object *obj); + int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); +@@ -485,7 +510,7 @@ struct drm_gem_object *vc4_prime_import_sg_table(struct drm_device *dev, + struct dma_buf_attachment *attach, + struct sg_table *sgt); + void *vc4_prime_vmap(struct drm_gem_object *obj); +-void vc4_bo_cache_init(struct drm_device *dev); ++int vc4_bo_cache_init(struct drm_device *dev); + void vc4_bo_cache_destroy(struct drm_device *dev); + int vc4_bo_stats_debugfs(struct seq_file *m, void *arg); + +diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c +index 8b551bc630c4..80f1953b4938 100644 +--- a/drivers/gpu/drm/vc4/vc4_gem.c ++++ b/drivers/gpu/drm/vc4/vc4_gem.c +@@ -774,7 +774,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) + goto fail; + } + +- bo = vc4_bo_create(dev, exec_size, true); ++ bo = vc4_bo_create(dev, exec_size, true, VC4_BO_TYPE_BCL); + if (IS_ERR(bo)) { + DRM_ERROR("Couldn't allocate BO for binning\n"); + ret = PTR_ERR(bo); +diff --git a/drivers/gpu/drm/vc4/vc4_render_cl.c b/drivers/gpu/drm/vc4/vc4_render_cl.c +index da3bfd53f0bd..e0539731130b 100644 +--- a/drivers/gpu/drm/vc4/vc4_render_cl.c ++++ b/drivers/gpu/drm/vc4/vc4_render_cl.c +@@ -320,7 +320,7 @@ static int vc4_create_rcl_bo(struct drm_device *dev, struct vc4_exec_info *exec, + + size += xtiles * ytiles * loop_body_size; + +- setup->rcl = &vc4_bo_create(dev, size, true)->base; ++ setup->rcl = &vc4_bo_create(dev, size, true, VC4_BO_TYPE_RCL)->base; + if (IS_ERR(setup->rcl)) + return PTR_ERR(setup->rcl); + list_add_tail(&to_vc4_bo(&setup->rcl->base)->unref_head, +diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c +index 8c723da71f66..622cd43840b8 100644 +--- a/drivers/gpu/drm/vc4/vc4_v3d.c ++++ b/drivers/gpu/drm/vc4/vc4_v3d.c +@@ -236,7 +236,8 @@ vc4_allocate_bin_bo(struct drm_device *drm) + INIT_LIST_HEAD(&list); + + while (true) { +- struct vc4_bo *bo = vc4_bo_create(drm, size, true); ++ struct vc4_bo *bo = vc4_bo_create(drm, size, true, ++ VC4_BO_TYPE_BIN); + + if (IS_ERR(bo)) { + ret = PTR_ERR(bo); +diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h +index 6ac4c5c014cb..551628e571f9 100644 +--- a/include/uapi/drm/vc4_drm.h ++++ b/include/uapi/drm/vc4_drm.h +@@ -40,6 +40,7 @@ extern "C" { + #define DRM_VC4_GET_PARAM 0x07 + #define DRM_VC4_SET_TILING 0x08 + #define DRM_VC4_GET_TILING 0x09 ++#define DRM_VC4_LABEL_BO 0x0a + + #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl) + #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno) +@@ -51,6 +52,7 @@ extern "C" { + #define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param) + #define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling) + #define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling) ++#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo) + + struct drm_vc4_submit_rcl_surface { + __u32 hindex; /* Handle index, or ~0 if not present. */ +@@ -311,6 +313,15 @@ struct drm_vc4_set_tiling { + __u64 modifier; + }; + ++/** ++ * struct drm_vc4_label_bo - Attach a name to a BO for debug purposes. ++ */ ++struct drm_vc4_label_bo { ++ __u32 handle; ++ __u32 len; ++ __u64 name; ++}; ++ + #if defined(__cplusplus) + } + #endif +-- +2.13.5 + +From 34cbed8ed9441caa13017108dac189e09c35f9af Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Wed, 2 Aug 2017 13:32:40 -0700 +Subject: [PATCH 5/6] drm/vc4: Fix double destroy of the BO cache on teardown. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It's also destroyed from the top level vc4_drv.c initialization, which +is where the cache was actually initialized from. + +This used to just involve duplicate del_timer() and cancel_work_sync() +being called, but it started causing kmalloc issues once we +double-freed the new BO label array. + +Fixes: 1908a876f909 ("drm/vc4: Add an ioctl for labeling GEM BOs for summary stats") +Signed-off-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20170802203242.12815-1-eric@anholt.net +Tested-by: Noralf Trønnes +Acked-by: Noralf Trønnes +Reviewed-by: Boris Brezillon +--- + drivers/gpu/drm/vc4/vc4_gem.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c +index 80f1953b4938..624177b9cce4 100644 +--- a/drivers/gpu/drm/vc4/vc4_gem.c ++++ b/drivers/gpu/drm/vc4/vc4_gem.c +@@ -1117,6 +1117,4 @@ vc4_gem_destroy(struct drm_device *dev) + + if (vc4->hang_state) + vc4_free_hang_state(dev, vc4->hang_state); +- +- vc4_bo_cache_destroy(dev); + } +-- +2.13.5 + +From 4f218eea5be54c8506e6db700750e8b8019dc6af Mon Sep 17 00:00:00 2001 +From: Boris Brezillon +Date: Fri, 16 Jun 2017 10:30:33 +0200 +Subject: [PATCH 6/6] drm/vc4: Send a VBLANK event when disabling a CRTC + +VBLANK events are missed when the CRTC is being disabled because the +driver does not wait till the end of the frame before stopping the +HVS and PV blocks. In this case, we should explicitly issue a VBLANK +event if there's one waiting. + +Signed-off-by: Boris Brezillon +Reviewed-by: Eric Anholt +Link: http://patchwork.freedesktop.org/patch/msgid/1497601833-24588-1-git-send-email-boris.brezillon@free-electrons.com +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index a12cc7ea99b6..b0582ad3f459 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -518,6 +518,19 @@ static void vc4_crtc_disable(struct drm_crtc *crtc) + WARN_ON_ONCE((HVS_READ(SCALER_DISPSTATX(chan)) & + (SCALER_DISPSTATX_FULL | SCALER_DISPSTATX_EMPTY)) != + SCALER_DISPSTATX_EMPTY); ++ ++ /* ++ * Make sure we issue a vblank event after disabling the CRTC if ++ * someone was waiting it. ++ */ ++ if (crtc->state->event) { ++ unsigned long flags; ++ ++ spin_lock_irqsave(&dev->event_lock, flags); ++ drm_crtc_send_vblank_event(crtc, crtc->state->event); ++ crtc->state->event = NULL; ++ spin_unlock_irqrestore(&dev->event_lock, flags); ++ } + } + + static void vc4_crtc_update_dlist(struct drm_crtc *crtc) +-- +2.13.5 + diff --git a/kernel.spec b/kernel.spec index 08000e970..062558794 100644 --- a/kernel.spec +++ b/kernel.spec @@ -615,9 +615,6 @@ Patch313: qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch # https://patchwork.kernel.org/patch/9850189/ Patch314: qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch -# http://www.spinics.net/lists/dri-devel/msg132235.html -Patch320: bcm283x-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO..patch - # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ Patch321: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch @@ -628,8 +625,10 @@ Patch322: bcm2837-move-dt.patch # Patch323: bcm2837-bluetooth-support.patch +Patch324: bcm283x-vc4-fixes.patch + # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20170912&id=723288836628bc1c0855f3bb7b64b1803e4b9e4a -Patch324: arm-of-restrict-dma-configuration.patch +Patch330: arm-of-restrict-dma-configuration.patch # 400 - IBM (ppc/s390x) patches @@ -2223,6 +2222,9 @@ fi # # %changelog +* Tue Sep 19 2017 Peter Robinson +- Fix a few vc4 crashes on the Raspberry Pi + * Mon Sep 18 2017 Justin M. Forbes - Fixes for QXL (rhbz 1462381) - Fix rhbz 1431375 From ba936476b2136a2598217ab5b5cdd3a124f9fc8e Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 20 Sep 2017 11:12:46 -0500 Subject: [PATCH 015/289] Linux v4.13.3 --- ...-prevent-KEYCTL_READ-on-negative-key.patch | 88 +++++++++++++++++++ kernel.spec | 9 +- sources | 2 +- 3 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 KEYS-prevent-KEYCTL_READ-on-negative-key.patch diff --git a/KEYS-prevent-KEYCTL_READ-on-negative-key.patch b/KEYS-prevent-KEYCTL_READ-on-negative-key.patch new file mode 100644 index 000000000..d80176e66 --- /dev/null +++ b/KEYS-prevent-KEYCTL_READ-on-negative-key.patch @@ -0,0 +1,88 @@ +From patchwork Mon Sep 18 18:37:23 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: KEYS: prevent KEYCTL_READ on negative key +From: Eric Biggers +X-Patchwork-Id: 9957387 +Message-Id: <20170918183723.114253-1-ebiggers3@gmail.com> +To: keyrings@vger.kernel.org +Cc: David Howells , Michael Halcrow , + linux-security-module@vger.kernel.org, + linux-kernel@vger.kernel.org, Eric Biggers , + stable@vger.kernel.org +Date: Mon, 18 Sep 2017 11:37:23 -0700 + +From: Eric Biggers + +Because keyctl_read_key() looks up the key with no permissions +requested, it may find a negatively instantiated key. If the key is +also possessed, we went ahead and called ->read() on the key. But the +key payload will actually contain the ->reject_error rather than the +normal payload. Thus, the kernel oopses trying to read the +user_key_payload from memory address (int)-ENOKEY = 0x00000000ffffff82. + +Fortunately the payload data is stored inline, so it shouldn't be +possible to abuse this as an arbitrary memory read primitive... + +Reproducer: + keyctl new_session + keyctl request2 user desc '' @s + keyctl read $(keyctl show | awk '/user: desc/ {print $1}') + +It causes a crash like the following: + BUG: unable to handle kernel paging request at 00000000ffffff92 + IP: user_read+0x33/0xa0 + PGD 36a54067 P4D 36a54067 PUD 0 + Oops: 0000 [#1] SMP + CPU: 0 PID: 211 Comm: keyctl Not tainted 4.14.0-rc1 #337 + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-20170228_101828-anatol 04/01/2014 + task: ffff90aa3b74c3c0 task.stack: ffff9878c0478000 + RIP: 0010:user_read+0x33/0xa0 + RSP: 0018:ffff9878c047bee8 EFLAGS: 00010246 + RAX: 0000000000000001 RBX: ffff90aa3d7da340 RCX: 0000000000000017 + RDX: 0000000000000000 RSI: 00000000ffffff82 RDI: ffff90aa3d7da340 + RBP: ffff9878c047bf00 R08: 00000024f95da94f R09: 0000000000000000 + R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000 + R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 + FS: 00007f58ece69740(0000) GS:ffff90aa3e200000(0000) knlGS:0000000000000000 + CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 + CR2: 00000000ffffff92 CR3: 0000000036adc001 CR4: 00000000003606f0 + Call Trace: + keyctl_read_key+0xac/0xe0 + SyS_keyctl+0x99/0x120 + entry_SYSCALL_64_fastpath+0x1f/0xbe + RIP: 0033:0x7f58ec787bb9 + RSP: 002b:00007ffc8d401678 EFLAGS: 00000206 ORIG_RAX: 00000000000000fa + RAX: ffffffffffffffda RBX: 00007ffc8d402800 RCX: 00007f58ec787bb9 + RDX: 0000000000000000 RSI: 00000000174a63ac RDI: 000000000000000b + RBP: 0000000000000004 R08: 00007ffc8d402809 R09: 0000000000000020 + R10: 0000000000000000 R11: 0000000000000206 R12: 00007ffc8d402800 + R13: 00007ffc8d4016e0 R14: 0000000000000000 R15: 0000000000000000 + Code: e5 41 55 49 89 f5 41 54 49 89 d4 53 48 89 fb e8 a4 b4 ad ff 85 c0 74 09 80 3d b9 4c 96 00 00 74 43 48 8b b3 20 01 00 00 4d 85 ed <0f> b7 5e 10 74 29 4d 85 e4 74 24 4c 39 e3 4c 89 e2 4c 89 ef 48 + RIP: user_read+0x33/0xa0 RSP: ffff9878c047bee8 + CR2: 00000000ffffff92 + +Fixes: 61ea0c0ba904 ("KEYS: Skip key state checks when checking for possession") +Cc: [v3.13+] +Signed-off-by: Eric Biggers +--- + security/keys/keyctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c +index ab0b337c84b4..6a82090c7fc1 100644 +--- a/security/keys/keyctl.c ++++ b/security/keys/keyctl.c +@@ -766,6 +766,11 @@ long keyctl_read_key(key_serial_t keyid, char __user *buffer, size_t buflen) + + key = key_ref_to_ptr(key_ref); + ++ if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) { ++ ret = -ENOKEY; ++ goto error2; ++ } ++ + /* see if we can read it directly */ + ret = key_permission(key_ref, KEY_NEED_READ); + if (ret == 0) diff --git a/kernel.spec b/kernel.spec index 062558794..19e62c34f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 2 +%define stable_update 3 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -668,6 +668,9 @@ Patch622: qxl-fixes.patch Patch623: HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch Patch624: input-rmi4-remove-the-need-for-artifical-IRQ.patch +# rhbz 1493435 1493436 +Patch625: KEYS-prevent-KEYCTL_READ-on-negative-key.patch + # END OF PATCH DEFINITIONS %endif @@ -2222,6 +2225,10 @@ fi # # %changelog +* Wed Sep 20 2017 Justin M. Forbes - 4.13.3-300 +- Linux v4.13.3 +- Fixes 1493435 1493436 + * Tue Sep 19 2017 Peter Robinson - Fix a few vc4 crashes on the Raspberry Pi diff --git a/sources b/sources index 437172001..b01fa41b3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.2.xz) = 2b9cc6f24c2792b619189c81d8960d6f5dd622f767d6645208c59f3f38c00db5bdfb0d1fbbfa717bea7fd86067921cf07109c9a7a1001ce7a915bfa2a6a2c03e +SHA512 (patch-4.13.3.xz) = 7c0675386c0906178661313d2dbaf644df9b43af31c4b8c8cc840c59b952c04c5768089782d79d84fd363e26b1824e05d1516a80b8cae663225fcb9b252d848a From dc72d091495fbefe3e6d6a608b81bc2fdcfa622d Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Tue, 19 Sep 2017 10:14:46 -0700 Subject: [PATCH 016/289] Disable CONFIG_VIRTIO_BLK_SCSI Per comments from Christoph Hellwig lkml.kernel.org/r/<20170917235731.GA31789@infradead.org> --- baseconfig/CONFIG_VIRTIO_BLK_SCSI | 2 +- kernel-aarch64-debug.config | 2 +- kernel-aarch64.config | 2 +- kernel-armv7hl-debug.config | 2 +- kernel-armv7hl-lpae-debug.config | 2 +- kernel-armv7hl-lpae.config | 2 +- kernel-armv7hl.config | 2 +- kernel-i686-PAE.config | 2 +- kernel-i686-PAEdebug.config | 2 +- kernel-i686-debug.config | 2 +- kernel-i686.config | 2 +- kernel-ppc64-debug.config | 2 +- kernel-ppc64.config | 2 +- kernel-ppc64le-debug.config | 2 +- kernel-ppc64le.config | 2 +- kernel-ppc64p7-debug.config | 2 +- kernel-ppc64p7.config | 2 +- kernel-s390x-debug.config | 2 +- kernel-s390x.config | 2 +- kernel-x86_64-debug.config | 2 +- kernel-x86_64.config | 2 +- kernel.spec | 3 +++ 22 files changed, 24 insertions(+), 21 deletions(-) diff --git a/baseconfig/CONFIG_VIRTIO_BLK_SCSI b/baseconfig/CONFIG_VIRTIO_BLK_SCSI index dcc60f529..e551a8ba1 100644 --- a/baseconfig/CONFIG_VIRTIO_BLK_SCSI +++ b/baseconfig/CONFIG_VIRTIO_BLK_SCSI @@ -1 +1 @@ -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 2d44df3b4..d387b37cc 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -6297,7 +6297,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 9a49d1793..6ff7ca034 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -6274,7 +6274,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 0187d8cbb..47351193e 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -6861,7 +6861,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 03c99aec4..b08d09dcc 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -6412,7 +6412,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index 3ac1bd2b6..d4c97b43c 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -6389,7 +6389,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index eef755f6a..0420cfc30 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -6838,7 +6838,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 4f8f7fdb9..7b13eac46 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -5904,7 +5904,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 098c8dc37..8a1b4f5f7 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -5926,7 +5926,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index c960be760..7d6f366a8 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -5926,7 +5926,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-i686.config b/kernel-i686.config index 5e77c7016..547ba49fd 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -5904,7 +5904,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index d51eebc58..94998183f 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -5704,7 +5704,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-ppc64.config b/kernel-ppc64.config index 46bb44a1b..c01895ad0 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -5680,7 +5680,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 75787145e..83849709d 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -5632,7 +5632,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 7fc5ca96f..06032461e 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -5608,7 +5608,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config index 6b2d0ea01..58863a72b 100644 --- a/kernel-ppc64p7-debug.config +++ b/kernel-ppc64p7-debug.config @@ -5631,7 +5631,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config index 3444a6323..65820b7b9 100644 --- a/kernel-ppc64p7.config +++ b/kernel-ppc64p7.config @@ -5607,7 +5607,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index c46c8e88a..85191ea00 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -5525,7 +5525,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=y CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index 21f70f71c..4e31c70e3 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -5501,7 +5501,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=y CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index f5fdc7629..3333a6d5a 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -5973,7 +5973,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel-x86_64.config b/kernel-x86_64.config index c8334ad5e..4c2024cc1 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -5951,7 +5951,7 @@ CONFIG_VIDEO_ZORAN_ZR36060=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BLK=m -CONFIG_VIRTIO_BLK_SCSI=y +# CONFIG_VIRTIO_BLK_SCSI is not set CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_INPUT=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set diff --git a/kernel.spec b/kernel.spec index 19e62c34f..3882d791b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2225,6 +2225,9 @@ fi # # %changelog +* Wed Sep 20 2017 Laura Abbott +- Disable CONFIG_VIRTIO_BLK_SCSI + * Wed Sep 20 2017 Justin M. Forbes - 4.13.3-300 - Linux v4.13.3 - Fixes 1493435 1493436 From de783628d1bc62666cedd49a9fb1cd55fd6f33c7 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 21 Sep 2017 12:57:16 -0700 Subject: [PATCH 017/289] Fix useaddr regression (rhbz 1432684) --- 1-3-net-set-tb--fast_sk_family.patch | 50 +++++++++++++++++ ...e-inet6_rcv_saddr-to-compare-sockets.patch | 44 +++++++++++++++ 3-3-inet-fix-improper-empty-comparison.patch | 53 +++++++++++++++++++ kernel.spec | 8 +++ 4 files changed, 155 insertions(+) create mode 100644 1-3-net-set-tb--fast_sk_family.patch create mode 100644 2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch create mode 100644 3-3-inet-fix-improper-empty-comparison.patch diff --git a/1-3-net-set-tb--fast_sk_family.patch b/1-3-net-set-tb--fast_sk_family.patch new file mode 100644 index 000000000..dbe5250ab --- /dev/null +++ b/1-3-net-set-tb--fast_sk_family.patch @@ -0,0 +1,50 @@ +From patchwork Mon Sep 18 16:28:55 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [1/3] net: set tb->fast_sk_family +X-Patchwork-Submitter: Josef Bacik +X-Patchwork-Id: 815031 +X-Patchwork-Delegate: davem@davemloft.net +Message-Id: <1505752137-15522-2-git-send-email-jbacik@fb.com> +To: davem@davemloft.net, netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, crobinso@redhat.com, + labbott@redhat.com, kernel-team@fb.com +Cc: Josef Bacik , stable@vger.kernel.org +Date: Mon, 18 Sep 2017 12:28:55 -0400 +From: josef@toxicpanda.com +List-Id: + +From: Josef Bacik + +We need to set the tb->fast_sk_family properly so we can use the proper +comparison function for all subsequent reuseport bind requests. + +Cc: stable@vger.kernel.org +Fixes: 637bc8bbe6c0 ("inet: reset tb->fastreuseport when adding a reuseport sk") +Reported-and-tested-by: Cole Robinson +Signed-off-by: Josef Bacik +--- + net/ipv4/inet_connection_sock.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c +index b9c64b40a83a..f87f4805e244 100644 +--- a/net/ipv4/inet_connection_sock.c ++++ b/net/ipv4/inet_connection_sock.c +@@ -328,6 +328,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) + tb->fastuid = uid; + tb->fast_rcv_saddr = sk->sk_rcv_saddr; + tb->fast_ipv6_only = ipv6_only_sock(sk); ++ tb->fast_sk_family = sk->sk_family; + #if IS_ENABLED(CONFIG_IPV6) + tb->fast_v6_rcv_saddr = sk->sk_v6_rcv_saddr; + #endif +@@ -354,6 +355,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) + tb->fastuid = uid; + tb->fast_rcv_saddr = sk->sk_rcv_saddr; + tb->fast_ipv6_only = ipv6_only_sock(sk); ++ tb->fast_sk_family = sk->sk_family; + #if IS_ENABLED(CONFIG_IPV6) + tb->fast_v6_rcv_saddr = sk->sk_v6_rcv_saddr; + #endif diff --git a/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch b/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch new file mode 100644 index 000000000..3d64361df --- /dev/null +++ b/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch @@ -0,0 +1,44 @@ +From patchwork Mon Sep 18 16:28:56 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [2/3] net: use inet6_rcv_saddr to compare sockets +X-Patchwork-Submitter: Josef Bacik +X-Patchwork-Id: 815028 +X-Patchwork-Delegate: davem@davemloft.net +Message-Id: <1505752137-15522-3-git-send-email-jbacik@fb.com> +To: davem@davemloft.net, netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, crobinso@redhat.com, + labbott@redhat.com, kernel-team@fb.com +Cc: Josef Bacik , stable@vger.kernel.org +Date: Mon, 18 Sep 2017 12:28:56 -0400 +From: josef@toxicpanda.com +List-Id: + +From: Josef Bacik + +In ipv6_rcv_saddr_equal() we need to use inet6_rcv_saddr(sk) for the +ipv6 compare with the fast socket information to make sure we're doing +the proper comparisons. + +Cc: stable@vger.kernel.org +Fixes: 637bc8bbe6c0 ("inet: reset tb->fastreuseport when adding a reuseport sk") +Reported-and-tested-by: Cole Robinson +Signed-off-by: Josef Bacik +--- + net/ipv4/inet_connection_sock.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c +index f87f4805e244..a1bf30438bc5 100644 +--- a/net/ipv4/inet_connection_sock.c ++++ b/net/ipv4/inet_connection_sock.c +@@ -266,7 +266,7 @@ static inline int sk_reuseport_match(struct inet_bind_bucket *tb, + #if IS_ENABLED(CONFIG_IPV6) + if (tb->fast_sk_family == AF_INET6) + return ipv6_rcv_saddr_equal(&tb->fast_v6_rcv_saddr, +- &sk->sk_v6_rcv_saddr, ++ inet6_rcv_saddr(sk), + tb->fast_rcv_saddr, + sk->sk_rcv_saddr, + tb->fast_ipv6_only, diff --git a/3-3-inet-fix-improper-empty-comparison.patch b/3-3-inet-fix-improper-empty-comparison.patch new file mode 100644 index 000000000..421a235cb --- /dev/null +++ b/3-3-inet-fix-improper-empty-comparison.patch @@ -0,0 +1,53 @@ +From patchwork Mon Sep 18 16:28:57 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [3/3] inet: fix improper empty comparison +X-Patchwork-Submitter: Josef Bacik +X-Patchwork-Id: 815029 +X-Patchwork-Delegate: davem@davemloft.net +Message-Id: <1505752137-15522-4-git-send-email-jbacik@fb.com> +To: davem@davemloft.net, netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, crobinso@redhat.com, + labbott@redhat.com, kernel-team@fb.com +Cc: Josef Bacik , stable@vger.kernel.org +Date: Mon, 18 Sep 2017 12:28:57 -0400 +From: josef@toxicpanda.com +List-Id: + +From: Josef Bacik + +When doing my reuseport rework I screwed up and changed a + +if (hlist_empty(&tb->owners)) + +to + +if (!hlist_empty(&tb->owners)) + +This is obviously bad as all of the reuseport/reuse logic was reversed, +which caused weird problems like allowing an ipv4 bind conflict if we +opened an ipv4 only socket on a port followed by an ipv6 only socket on +the same port. + +Cc: stable@vger.kernel.org +Fixes: b9470c27607b ("inet: kill smallest_size and smallest_port") +Reported-by: Cole Robinson +Signed-off-by: Josef Bacik +--- + net/ipv4/inet_connection_sock.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c +index a1bf30438bc5..c039c937ba90 100644 +--- a/net/ipv4/inet_connection_sock.c ++++ b/net/ipv4/inet_connection_sock.c +@@ -321,7 +321,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) + goto fail_unlock; + } + success: +- if (!hlist_empty(&tb->owners)) { ++ if (hlist_empty(&tb->owners)) { + tb->fastreuse = reuse; + if (sk->sk_reuseport) { + tb->fastreuseport = FASTREUSEPORT_ANY; diff --git a/kernel.spec b/kernel.spec index 3882d791b..a13a868b3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -671,6 +671,11 @@ Patch624: input-rmi4-remove-the-need-for-artifical-IRQ.patch # rhbz 1493435 1493436 Patch625: KEYS-prevent-KEYCTL_READ-on-negative-key.patch +# rhbz 1432684 +Patch626: 1-3-net-set-tb--fast_sk_family.patch +Patch627: 2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch +Patch628: 3-3-inet-fix-improper-empty-comparison.patch + # END OF PATCH DEFINITIONS %endif @@ -2225,6 +2230,9 @@ fi # # %changelog +* Thu Sep 21 2017 Laura Abbott +- Fix useaddr regression (rhbz 1432684) + * Wed Sep 20 2017 Laura Abbott - Disable CONFIG_VIRTIO_BLK_SCSI From 1bb902ac6aad863c0c3fe26cb30ddd2f32fb9982 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Sat, 23 Sep 2017 08:56:20 -0700 Subject: [PATCH 018/289] Actually set debug builds enabled (whoops) --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index a13a868b3..f44d74b9e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -125,7 +125,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} From e4014ac50591e78a07d0da1f7a74b23c0a9a68d5 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 24 Sep 2017 15:42:58 +0100 Subject: [PATCH 019/289] cleanup some deprecated options, minor arm config tweaks --- baseconfig/CONFIG_BLK_DEV_UB | 1 - baseconfig/CONFIG_BT_SCO | 1 - baseconfig/CONFIG_CHARGER_QCOM_SMBB | 1 - baseconfig/CONFIG_EXPERIMENTAL | 1 - baseconfig/CONFIG_INOTIFY | 1 - baseconfig/CONFIG_USB_LED | 1 - baseconfig/arm/{arm64 => }/CONFIG_ARCH_BCM_IPROC | 0 baseconfig/arm/CONFIG_IOMMU_DMA | 1 + baseconfig/arm/arm64/CONFIG_CHARGER_QCOM_SMBB | 1 + baseconfig/arm/{ => arm64}/CONFIG_MFD_SPMI_PMIC | 0 baseconfig/arm/armv7/armv7/CONFIG_CHARGER_QCOM_SMBB | 1 + baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC | 1 + kernel-aarch64-debug.config | 8 ++------ kernel-aarch64.config | 8 ++------ kernel-armv7hl-debug.config | 9 +++------ kernel-armv7hl-lpae-debug.config | 9 ++------- kernel-armv7hl-lpae.config | 9 ++------- kernel-armv7hl.config | 9 +++------ kernel-i686-PAE.config | 6 ------ kernel-i686-PAEdebug.config | 6 ------ kernel-i686-debug.config | 6 ------ kernel-i686.config | 6 ------ kernel-ppc64-debug.config | 6 ------ kernel-ppc64.config | 6 ------ kernel-ppc64le-debug.config | 6 ------ kernel-ppc64le.config | 6 ------ kernel-ppc64p7-debug.config | 6 ------ kernel-ppc64p7.config | 6 ------ kernel-s390x-debug.config | 6 ------ kernel-s390x.config | 6 ------ kernel-x86_64-debug.config | 6 ------ kernel-x86_64.config | 6 ------ 32 files changed, 18 insertions(+), 128 deletions(-) delete mode 100644 baseconfig/CONFIG_BLK_DEV_UB delete mode 100644 baseconfig/CONFIG_BT_SCO delete mode 100644 baseconfig/CONFIG_CHARGER_QCOM_SMBB delete mode 100644 baseconfig/CONFIG_EXPERIMENTAL delete mode 100644 baseconfig/CONFIG_INOTIFY delete mode 100644 baseconfig/CONFIG_USB_LED rename baseconfig/arm/{arm64 => }/CONFIG_ARCH_BCM_IPROC (100%) create mode 100644 baseconfig/arm/CONFIG_IOMMU_DMA create mode 100644 baseconfig/arm/arm64/CONFIG_CHARGER_QCOM_SMBB rename baseconfig/arm/{ => arm64}/CONFIG_MFD_SPMI_PMIC (100%) create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_CHARGER_QCOM_SMBB create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC diff --git a/baseconfig/CONFIG_BLK_DEV_UB b/baseconfig/CONFIG_BLK_DEV_UB deleted file mode 100644 index 6fbfd13fb..000000000 --- a/baseconfig/CONFIG_BLK_DEV_UB +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_BLK_DEV_UB is not set diff --git a/baseconfig/CONFIG_BT_SCO b/baseconfig/CONFIG_BT_SCO deleted file mode 100644 index c04760986..000000000 --- a/baseconfig/CONFIG_BT_SCO +++ /dev/null @@ -1 +0,0 @@ -CONFIG_BT_SCO=y diff --git a/baseconfig/CONFIG_CHARGER_QCOM_SMBB b/baseconfig/CONFIG_CHARGER_QCOM_SMBB deleted file mode 100644 index c06d8f1f1..000000000 --- a/baseconfig/CONFIG_CHARGER_QCOM_SMBB +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_CHARGER_QCOM_SMBB is not set diff --git a/baseconfig/CONFIG_EXPERIMENTAL b/baseconfig/CONFIG_EXPERIMENTAL deleted file mode 100644 index 8c91d40b9..000000000 --- a/baseconfig/CONFIG_EXPERIMENTAL +++ /dev/null @@ -1 +0,0 @@ -CONFIG_EXPERIMENTAL=y diff --git a/baseconfig/CONFIG_INOTIFY b/baseconfig/CONFIG_INOTIFY deleted file mode 100644 index 78343a1d2..000000000 --- a/baseconfig/CONFIG_INOTIFY +++ /dev/null @@ -1 +0,0 @@ -CONFIG_INOTIFY=y diff --git a/baseconfig/CONFIG_USB_LED b/baseconfig/CONFIG_USB_LED deleted file mode 100644 index 445af6c46..000000000 --- a/baseconfig/CONFIG_USB_LED +++ /dev/null @@ -1 +0,0 @@ -CONFIG_USB_LED=m diff --git a/baseconfig/arm/arm64/CONFIG_ARCH_BCM_IPROC b/baseconfig/arm/CONFIG_ARCH_BCM_IPROC similarity index 100% rename from baseconfig/arm/arm64/CONFIG_ARCH_BCM_IPROC rename to baseconfig/arm/CONFIG_ARCH_BCM_IPROC diff --git a/baseconfig/arm/CONFIG_IOMMU_DMA b/baseconfig/arm/CONFIG_IOMMU_DMA new file mode 100644 index 000000000..a9155fba1 --- /dev/null +++ b/baseconfig/arm/CONFIG_IOMMU_DMA @@ -0,0 +1 @@ +CONFIG_IOMMU_DMA=y diff --git a/baseconfig/arm/arm64/CONFIG_CHARGER_QCOM_SMBB b/baseconfig/arm/arm64/CONFIG_CHARGER_QCOM_SMBB new file mode 100644 index 000000000..43a91eb0e --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_CHARGER_QCOM_SMBB @@ -0,0 +1 @@ +CONFIG_CHARGER_QCOM_SMBB=m diff --git a/baseconfig/arm/CONFIG_MFD_SPMI_PMIC b/baseconfig/arm/arm64/CONFIG_MFD_SPMI_PMIC similarity index 100% rename from baseconfig/arm/CONFIG_MFD_SPMI_PMIC rename to baseconfig/arm/arm64/CONFIG_MFD_SPMI_PMIC diff --git a/baseconfig/arm/armv7/armv7/CONFIG_CHARGER_QCOM_SMBB b/baseconfig/arm/armv7/armv7/CONFIG_CHARGER_QCOM_SMBB new file mode 100644 index 000000000..43a91eb0e --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_CHARGER_QCOM_SMBB @@ -0,0 +1 @@ +CONFIG_CHARGER_QCOM_SMBB=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC b/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC new file mode 100644 index 000000000..6360fee39 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC @@ -0,0 +1 @@ +CONFIG_MFD_SPMI_PMIC=m diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index d387b37cc..5ed82c971 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -555,7 +555,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -679,7 +678,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set CONFIG_BTT=y CONFIG_BT_WILINK=m @@ -809,7 +807,7 @@ CONFIG_CHARGER_AXP20X=m # CONFIG_CHARGER_MANAGER is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set +CONFIG_CHARGER_QCOM_SMBB=m # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1495,7 +1493,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2189,7 +2186,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -2261,6 +2257,7 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_IIO is not set # CONFIG_INV_MPU6050_SPI is not set +CONFIG_IOMMU_DMA=y # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set CONFIG_IOMMU_IO_PGTABLE_LPAE=y @@ -5951,7 +5948,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 6ff7ca034..f8244d576 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -555,7 +555,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -679,7 +678,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set CONFIG_BTT=y CONFIG_BT_WILINK=m @@ -809,7 +807,7 @@ CONFIG_CHARGER_AXP20X=m # CONFIG_CHARGER_MANAGER is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set +CONFIG_CHARGER_QCOM_SMBB=m # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1485,7 +1483,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2172,7 +2169,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -2244,6 +2240,7 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_IIO is not set # CONFIG_INV_MPU6050_SPI is not set +CONFIG_IOMMU_DMA=y # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set CONFIG_IOMMU_IO_PGTABLE_LPAE=y @@ -5928,7 +5925,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 47351193e..d753a003e 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -193,6 +193,7 @@ CONFIG_ARCH_BCM2835=y # CONFIG_ARCH_BCM_53573 is not set # CONFIG_ARCH_BCM_63XX is not set # CONFIG_ARCH_BCM_CYGNUS is not set +# CONFIG_ARCH_BCM_IPROC is not set # CONFIG_ARCH_BCM_NSP is not set CONFIG_ARCH_BCM=y # CONFIG_ARCH_BERLIN is not set @@ -596,7 +597,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -720,7 +720,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -851,7 +850,7 @@ CONFIG_CHARGER_MANAGER=y # CONFIG_CHARGER_MAX8903 is not set CONFIG_CHARGER_MAX8997=m # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set +CONFIG_CHARGER_QCOM_SMBB=m # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1607,7 +1606,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2333,7 +2331,6 @@ CONFIG_INET=y # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y CONFIG_INPUT_88PM80X_ONKEY=m # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set @@ -2415,6 +2412,7 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_IIO is not set # CONFIG_INV_MPU6050_SPI is not set +CONFIG_IOMMU_DMA=y # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set CONFIG_IOMMU_IO_PGTABLE_LPAE=y @@ -6473,7 +6471,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index b08d09dcc..3ba5ecb86 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -189,6 +189,7 @@ CONFIG_ARCH_BCM2835=y # CONFIG_ARCH_BCM_53573 is not set # CONFIG_ARCH_BCM_63XX is not set # CONFIG_ARCH_BCM_CYGNUS is not set +# CONFIG_ARCH_BCM_IPROC is not set # CONFIG_ARCH_BCM_NSP is not set CONFIG_ARCH_BCM=y # CONFIG_ARCH_BERLIN is not set @@ -573,7 +574,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -696,7 +696,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -827,7 +826,6 @@ CONFIG_CHARGER_MANAGER=y # CONFIG_CHARGER_MAX8903 is not set CONFIG_CHARGER_MAX8997=m # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1519,7 +1517,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2213,7 +2210,6 @@ CONFIG_INET=y # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -2287,6 +2283,7 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_IIO is not set # CONFIG_INV_MPU6050_SPI is not set +CONFIG_IOMMU_DMA=y # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set CONFIG_IOMMU_IO_PGTABLE_LPAE=y @@ -3056,7 +3053,6 @@ CONFIG_MFD_SEC_CORE=y CONFIG_MFD_SM501_GPIO=y CONFIG_MFD_SM501=m # CONFIG_MFD_SMSC is not set -CONFIG_MFD_SPMI_PMIC=m # CONFIG_MFD_STMPE is not set CONFIG_MFD_SUN4I_GPADC=m CONFIG_MFD_SYSCON=y @@ -6051,7 +6047,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index d4c97b43c..e8e6b8805 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -189,6 +189,7 @@ CONFIG_ARCH_BCM2835=y # CONFIG_ARCH_BCM_53573 is not set # CONFIG_ARCH_BCM_63XX is not set # CONFIG_ARCH_BCM_CYGNUS is not set +# CONFIG_ARCH_BCM_IPROC is not set # CONFIG_ARCH_BCM_NSP is not set CONFIG_ARCH_BCM=y # CONFIG_ARCH_BERLIN is not set @@ -572,7 +573,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -695,7 +695,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -826,7 +825,6 @@ CONFIG_CHARGER_MANAGER=y # CONFIG_CHARGER_MAX8903 is not set CONFIG_CHARGER_MAX8997=m # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1509,7 +1507,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2196,7 +2193,6 @@ CONFIG_INET=y # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -2270,6 +2266,7 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_IIO is not set # CONFIG_INV_MPU6050_SPI is not set +CONFIG_IOMMU_DMA=y # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set CONFIG_IOMMU_IO_PGTABLE_LPAE=y @@ -3036,7 +3033,6 @@ CONFIG_MFD_SEC_CORE=y CONFIG_MFD_SM501_GPIO=y CONFIG_MFD_SM501=m # CONFIG_MFD_SMSC is not set -CONFIG_MFD_SPMI_PMIC=m # CONFIG_MFD_STMPE is not set CONFIG_MFD_SUN4I_GPADC=m CONFIG_MFD_SYSCON=y @@ -6028,7 +6024,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 0420cfc30..71d870380 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -193,6 +193,7 @@ CONFIG_ARCH_BCM2835=y # CONFIG_ARCH_BCM_53573 is not set # CONFIG_ARCH_BCM_63XX is not set # CONFIG_ARCH_BCM_CYGNUS is not set +# CONFIG_ARCH_BCM_IPROC is not set # CONFIG_ARCH_BCM_NSP is not set CONFIG_ARCH_BCM=y # CONFIG_ARCH_BERLIN is not set @@ -595,7 +596,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -719,7 +719,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -850,7 +849,7 @@ CONFIG_CHARGER_MANAGER=y # CONFIG_CHARGER_MAX8903 is not set CONFIG_CHARGER_MAX8997=m # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set +CONFIG_CHARGER_QCOM_SMBB=m # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1597,7 +1596,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2316,7 +2314,6 @@ CONFIG_INET=y # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y CONFIG_INPUT_88PM80X_ONKEY=m # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set @@ -2398,6 +2395,7 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_IIO is not set # CONFIG_INV_MPU6050_SPI is not set +CONFIG_IOMMU_DMA=y # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set CONFIG_IOMMU_IO_PGTABLE_LPAE=y @@ -6450,7 +6448,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 7b13eac46..ab8051456 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -467,7 +467,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -588,7 +587,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -707,7 +705,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1353,7 +1350,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2059,7 +2055,6 @@ CONFIG_INFINIBAND_VMWARE_PVRDMA=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5580,7 +5575,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 8a1b4f5f7..15782ae25 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -468,7 +468,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -589,7 +588,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -708,7 +706,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1364,7 +1361,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2077,7 +2073,6 @@ CONFIG_INFINIBAND_VMWARE_PVRDMA=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5602,7 +5597,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 7d6f366a8..3d3def5cb 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -468,7 +468,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -589,7 +588,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -708,7 +706,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1364,7 +1361,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2077,7 +2073,6 @@ CONFIG_INFINIBAND_VMWARE_PVRDMA=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5602,7 +5597,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-i686.config b/kernel-i686.config index 547ba49fd..7698a956d 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -467,7 +467,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -588,7 +587,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -707,7 +705,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1353,7 +1350,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2059,7 +2055,6 @@ CONFIG_INFINIBAND_VMWARE_PVRDMA=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5580,7 +5575,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 94998183f..d4c82c5a2 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -452,7 +452,6 @@ CONFIG_BLK_DEV_SX8=m CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_TRIFLEX is not set # CONFIG_BLK_DEV_TRM290 is not set -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_VIA82CXXX is not set CONFIG_BLK_DEV=y @@ -575,7 +574,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -694,7 +692,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1285,7 +1282,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1973,7 +1969,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5382,7 +5377,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-ppc64.config b/kernel-ppc64.config index c01895ad0..ef81c97e1 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -451,7 +451,6 @@ CONFIG_BLK_DEV_SX8=m CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_TRIFLEX is not set # CONFIG_BLK_DEV_TRM290 is not set -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_VIA82CXXX is not set CONFIG_BLK_DEV=y @@ -574,7 +573,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -693,7 +691,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1274,7 +1271,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1955,7 +1951,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5358,7 +5353,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 83849709d..d26b1b9d5 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -409,7 +409,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -531,7 +530,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -650,7 +648,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1238,7 +1235,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1918,7 +1914,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5310,7 +5305,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 06032461e..8ce598a5c 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -408,7 +408,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -530,7 +529,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -649,7 +647,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1227,7 +1224,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1900,7 +1896,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5286,7 +5281,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config index 58863a72b..1b81bf952 100644 --- a/kernel-ppc64p7-debug.config +++ b/kernel-ppc64p7-debug.config @@ -409,7 +409,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -531,7 +530,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -650,7 +648,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1237,7 +1234,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1917,7 +1913,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5309,7 +5304,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config index 65820b7b9..d09da0df8 100644 --- a/kernel-ppc64p7.config +++ b/kernel-ppc64p7.config @@ -408,7 +408,6 @@ CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -530,7 +529,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -649,7 +647,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1226,7 +1223,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1899,7 +1895,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5285,7 +5280,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 85191ea00..7412eca03 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -409,7 +409,6 @@ CONFIG_BLK_DEV_SR=y # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_XPRAM=m CONFIG_BLK_DEV=y @@ -531,7 +530,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -650,7 +648,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set # CONFIG_CHARGER_SMB347 is not set @@ -1232,7 +1229,6 @@ CONFIG_ETHERNET=y # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1867,7 +1863,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5205,7 +5200,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-s390x.config b/kernel-s390x.config index 4e31c70e3..ffe12518a 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -408,7 +408,6 @@ CONFIG_BLK_DEV_SR=y # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_XPRAM=m CONFIG_BLK_DEV=y @@ -530,7 +529,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set # CONFIG_BTT is not set CONFIG_BT_WILINK=m @@ -649,7 +647,6 @@ CONFIG_CGROUPS=y # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set # CONFIG_CHARGER_SMB347 is not set @@ -1221,7 +1218,6 @@ CONFIG_ETHERNET=y # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -1849,7 +1845,6 @@ CONFIG_INFINIBAND_USNIC=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5181,7 +5176,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 3333a6d5a..7f2d43696 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -478,7 +478,6 @@ CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_TRIFLEX is not set -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -599,7 +598,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set CONFIG_BTT=y CONFIG_BT_WILINK=m @@ -719,7 +717,6 @@ CONFIG_CHARGER_BQ24190=m # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1405,7 +1402,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2119,7 +2115,6 @@ CONFIG_INFINIBAND_VMWARE_PVRDMA=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5648,7 +5643,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 4c2024cc1..ed8572895 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -477,7 +477,6 @@ CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_TRIFLEX is not set -# CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_UMEM=m CONFIG_BLK_DEV=y CONFIG_BLK_DEV_ZONED=y @@ -598,7 +597,6 @@ CONFIG_BT_RFCOMM_TTY=y CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -CONFIG_BT_SCO=y # CONFIG_BT_SELFTEST is not set CONFIG_BTT=y CONFIG_BT_WILINK=m @@ -718,7 +716,6 @@ CONFIG_CHARGER_BQ24190=m # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m @@ -1394,7 +1391,6 @@ CONFIG_ETHOC=m # CONFIG_EVM is not set # CONFIG_EXOFS_DEBUG is not set # CONFIG_EXOFS_FS is not set -CONFIG_EXPERIMENTAL=y # CONFIG_EXPERT is not set CONFIG_EXPORTFS=y # CONFIG_EXT2_FS is not set @@ -2101,7 +2097,6 @@ CONFIG_INFINIBAND_VMWARE_PVRDMA=m # CONFIG_INFTL is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INOTIFY_USER=y -CONFIG_INOTIFY=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ADXL34X is not set CONFIG_INPUT_APANEL=m @@ -5626,7 +5621,6 @@ CONFIG_USB_KEENE=m CONFIG_USB_LAN78XX=m CONFIG_USB_LCD=m CONFIG_USB_LD=m -CONFIG_USB_LED=m CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_LED_TRIG=y CONFIG_USB_LEGOTOWER=m From ce00e7ebb6dd9539cf5e2ead109700ecd78085f0 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 25 Sep 2017 07:20:49 -0700 Subject: [PATCH 020/289] Bump for new build --- kernel.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index f44d74b9e..19750c301 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 300 +%global baserelease 301 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2230,6 +2230,9 @@ fi # # %changelog +* Mon Sep 25 2017 Laura Abbott - 4.13.3-301 +- Bump for new build + * Thu Sep 21 2017 Laura Abbott - Fix useaddr regression (rhbz 1432684) From ce7773697a53195d4b6e9f59189d6eedc0b13826 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 25 Sep 2017 16:52:24 +0100 Subject: [PATCH 021/289] Add patch to fix PCI on tegra20 --- kernel.spec | 6 +++ ...erent-MSI-target-address-for-Tegra20.patch | 47 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 tegra-Use-different-MSI-target-address-for-Tegra20.patch diff --git a/kernel.spec b/kernel.spec index 19750c301..4f6bc782c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -594,6 +594,9 @@ Patch305: arm-imx6-hummingboard2.patch Patch306: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch +# https://patchwork.kernel.org/patch/9967397/ +Patch307: tegra-Use-different-MSI-target-address-for-Tegra20.patch + # https://patchwork.kernel.org/patch/9815555/ # https://patchwork.kernel.org/patch/9815651/ # https://patchwork.kernel.org/patch/9819885/ @@ -2230,6 +2233,9 @@ fi # # %changelog +* Mon Sep 25 2017 Peter Robinson +- Add patch to fix PCI on tegra20 + * Mon Sep 25 2017 Laura Abbott - 4.13.3-301 - Bump for new build diff --git a/tegra-Use-different-MSI-target-address-for-Tegra20.patch b/tegra-Use-different-MSI-target-address-for-Tegra20.patch new file mode 100644 index 000000000..338693bcf --- /dev/null +++ b/tegra-Use-different-MSI-target-address-for-Tegra20.patch @@ -0,0 +1,47 @@ +From patchwork Sat Sep 23 06:17:40 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: PCI: tegra: Use different MSI target address for Tegra20 +From: Thierry Reding +X-Patchwork-Id: 9967397 +Message-Id: <20170923061740.6012-1-treding@nvidia.com> +To: Bjorn Helgaas +Cc: Thierry Reding , + Jonathan Hunter , + linux-pci@vger.kernel.org, linux-tegra@vger.kernel.org +Date: Fri, 22 Sep 2017 23:17:40 -0700 + +The Tegra20 PCIe controller has a different address range for MSI, so +select a different target address. + +Fixes: d7bd554f27c9 ("PCI: tegra: Do not allocate MSI target memory") +Signed-off-by: Thierry Reding +--- + drivers/pci/host/pci-tegra.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c +index e8e1ddbaabc9..5b02ea59524b 100644 +--- a/drivers/pci/host/pci-tegra.c ++++ b/drivers/pci/host/pci-tegra.c +@@ -1563,8 +1563,18 @@ static int tegra_pcie_enable_msi(struct tegra_pcie *pcie) + * none of the Tegra SoCs that contain this PCI host bridge can + * address more than 16 GiB of system memory, the last 4 KiB of + * these 1012 GiB is a good candidate. ++ * ++ * Unfortunately, Tegra20 is slightly different in that the physical ++ * address for this MSI region is limited to the lower 32 bits of the ++ * address map, so the address that we pick is going to have to be ++ * located somewhere within the region addressable by the CPU and ++ * on-SoC controllers. To be on the safe side, we select an address ++ * from a region that is marked unused (0xf0010000 - 0xfffeffff). + */ +- msi->phys = 0xfcfffff000; ++ if (soc->msi_base_shift > 0) ++ msi->phys = 0xfcfffff000; ++ else ++ msi->phys = 0x00f0010000; + + afi_writel(pcie, msi->phys >> soc->msi_base_shift, AFI_MSI_FPCI_BAR_ST); + afi_writel(pcie, msi->phys, AFI_MSI_AXI_BAR_ST); From 88bf6926a7ba2ea56a89a6c3dfe0730e41a08a2e Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 28 Sep 2017 09:38:21 -0700 Subject: [PATCH 022/289] Linux v4.13.4 --- kernel.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index 4f6bc782c..62f22d9f4 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 301 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 3 +%define stable_update 4 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -2233,6 +2233,9 @@ fi # # %changelog +* Thu Sep 28 2017 Laura Abbott - 4.13.4-300 +- Linux v4.13.4 + * Mon Sep 25 2017 Peter Robinson - Add patch to fix PCI on tegra20 diff --git a/sources b/sources index b01fa41b3..51a0f6eb9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.3.xz) = 7c0675386c0906178661313d2dbaf644df9b43af31c4b8c8cc840c59b952c04c5768089782d79d84fd363e26b1824e05d1516a80b8cae663225fcb9b252d848a +SHA512 (patch-4.13.4.xz) = 37aa8add92ae23b627c166b878b6d8191b75c2aca3a2eb2d7ae4f55262644731ab51a3ee171186fc0b011c6c8e537686377c3e73e8928797323b0a958eeb4b6b From dae69674b56ec1ed2a189ef4a9163c2e6d1ffa4c Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 28 Sep 2017 21:50:22 +0100 Subject: [PATCH 023/289] arm: minor config cleanups and tweaks --- baseconfig/arm/CONFIG_PATA_OF_PLATFORM | 1 - baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA | 0 baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA_HOST | 0 baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA_UDC | 0 baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA_ULPI | 0 baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA | 1 - baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_HOST | 1 - baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_UDC | 1 - baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_ULPI | 1 - kernel-aarch64-debug.config | 1 - kernel-aarch64.config | 1 - kernel-armv7hl-debug.config | 1 - kernel-armv7hl-lpae-debug.config | 7 ++++--- kernel-armv7hl-lpae.config | 7 ++++--- kernel-armv7hl.config | 1 - 15 files changed, 8 insertions(+), 15 deletions(-) delete mode 100644 baseconfig/arm/CONFIG_PATA_OF_PLATFORM rename baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA (100%) rename baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA_HOST (100%) rename baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA_UDC (100%) rename baseconfig/arm/{arm64 => }/CONFIG_USB_CHIPIDEA_ULPI (100%) delete mode 100644 baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA delete mode 100644 baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_HOST delete mode 100644 baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_UDC delete mode 100644 baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_ULPI diff --git a/baseconfig/arm/CONFIG_PATA_OF_PLATFORM b/baseconfig/arm/CONFIG_PATA_OF_PLATFORM deleted file mode 100644 index 5354705f9..000000000 --- a/baseconfig/arm/CONFIG_PATA_OF_PLATFORM +++ /dev/null @@ -1 +0,0 @@ -CONFIG_PATA_OF_PLATFORM=m diff --git a/baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA b/baseconfig/arm/CONFIG_USB_CHIPIDEA similarity index 100% rename from baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA rename to baseconfig/arm/CONFIG_USB_CHIPIDEA diff --git a/baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA_HOST b/baseconfig/arm/CONFIG_USB_CHIPIDEA_HOST similarity index 100% rename from baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA_HOST rename to baseconfig/arm/CONFIG_USB_CHIPIDEA_HOST diff --git a/baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA_UDC b/baseconfig/arm/CONFIG_USB_CHIPIDEA_UDC similarity index 100% rename from baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA_UDC rename to baseconfig/arm/CONFIG_USB_CHIPIDEA_UDC diff --git a/baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA_ULPI b/baseconfig/arm/CONFIG_USB_CHIPIDEA_ULPI similarity index 100% rename from baseconfig/arm/arm64/CONFIG_USB_CHIPIDEA_ULPI rename to baseconfig/arm/CONFIG_USB_CHIPIDEA_ULPI diff --git a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA b/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA deleted file mode 100644 index 0b76e3525..000000000 --- a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA +++ /dev/null @@ -1 +0,0 @@ -CONFIG_USB_CHIPIDEA=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_HOST b/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_HOST deleted file mode 100644 index 1c14a4a6c..000000000 --- a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_HOST +++ /dev/null @@ -1 +0,0 @@ -CONFIG_USB_CHIPIDEA_HOST=y diff --git a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_UDC b/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_UDC deleted file mode 100644 index 320052607..000000000 --- a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_UDC +++ /dev/null @@ -1 +0,0 @@ -CONFIG_USB_CHIPIDEA_UDC=y diff --git a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_ULPI b/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_ULPI deleted file mode 100644 index d1a5cf9eb..000000000 --- a/baseconfig/arm/armv7/armv7/CONFIG_USB_CHIPIDEA_ULPI +++ /dev/null @@ -1 +0,0 @@ -CONFIG_USB_CHIPIDEA_ULPI=y diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 5ed82c971..bdc54c3fe 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -3909,7 +3909,6 @@ CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OF_PLATFORM=m CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m diff --git a/kernel-aarch64.config b/kernel-aarch64.config index f8244d576..3d4bda263 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -3888,7 +3888,6 @@ CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OF_PLATFORM=m CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index d753a003e..8f746d750 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -4198,7 +4198,6 @@ CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OF_PLATFORM=m CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 3ba5ecb86..12762307f 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -3982,7 +3982,6 @@ CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OF_PLATFORM=m CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m @@ -5894,8 +5893,10 @@ CONFIG_USB_BELKIN=y CONFIG_USB_CATC=m CONFIG_USB_CDC_PHONET=m CONFIG_USB_CHAOSKEY=m -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_CHIPIDEA_ULPI is not set +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_ULPI=y CONFIG_USB_CONFIGFS_ACM=y CONFIG_USB_CONFIGFS_ECM_SUBSET=y CONFIG_USB_CONFIGFS_ECM=y diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index e8e6b8805..36149068b 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -3961,7 +3961,6 @@ CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OF_PLATFORM=m CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m @@ -5871,8 +5870,10 @@ CONFIG_USB_BELKIN=y CONFIG_USB_CATC=m CONFIG_USB_CDC_PHONET=m CONFIG_USB_CHAOSKEY=m -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_CHIPIDEA_ULPI is not set +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_ULPI=y CONFIG_USB_CONFIGFS_ACM=y CONFIG_USB_CONFIGFS_ECM_SUBSET=y CONFIG_USB_CONFIGFS_ECM=y diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 71d870380..4699b0930 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -4177,7 +4177,6 @@ CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OF_PLATFORM=m CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m From 037e86c40d1dc8a737626a8f675a7c2982738df3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 1 Oct 2017 19:33:34 +0100 Subject: [PATCH 024/289] disable a number of unused PATA/SATA drivers on ARM, don't build x86 specific drivers on other arches, minor tweaks to other arch specific configs --- baseconfig/CONFIG_HID_ASUS | 2 +- baseconfig/CONFIG_MMC_TOSHIBA_PCI | 2 +- baseconfig/CONFIG_PATA_ARASAN_CF | 2 +- baseconfig/CONFIG_PATA_ATIIXP | 2 +- baseconfig/CONFIG_PATA_CYPRESS | 2 +- baseconfig/CONFIG_PATA_MPIIX | 2 +- baseconfig/CONFIG_PATA_OLDPIIX | 2 +- baseconfig/CONFIG_PATA_RDC | 2 +- baseconfig/CONFIG_PATA_SCH | 2 +- baseconfig/CONFIG_PATA_TOSHIBA | 2 +- baseconfig/CONFIG_PATA_TRIFLEX | 2 +- baseconfig/CONFIG_SURFACE3_WMI | 1 - baseconfig/CONFIG_SURFACE_3_BUTTON | 2 +- baseconfig/arm/CONFIG_BLK_DEV_SX8 | 1 + baseconfig/arm/CONFIG_PATA_ALI | 1 + baseconfig/arm/CONFIG_PATA_AMD | 1 + baseconfig/arm/CONFIG_PATA_ARTOP | 1 + baseconfig/arm/CONFIG_PATA_ATP867X | 1 + baseconfig/arm/CONFIG_PATA_CMD640_PCI | 1 + baseconfig/arm/CONFIG_PATA_CMD64X | 1 + baseconfig/arm/CONFIG_PATA_CS5520 | 1 + baseconfig/arm/CONFIG_PATA_CS5530 | 1 + baseconfig/arm/CONFIG_PATA_CS5535 | 1 + baseconfig/arm/CONFIG_PATA_CS5536 | 1 + baseconfig/arm/CONFIG_PATA_EFAR | 1 + baseconfig/arm/CONFIG_PATA_HPT366 | 1 + baseconfig/arm/CONFIG_PATA_HPT37X | 1 + baseconfig/arm/CONFIG_PATA_HPT3X2N | 1 + baseconfig/arm/CONFIG_PATA_HPT3X3 | 1 + baseconfig/arm/CONFIG_PATA_IT8213 | 1 + baseconfig/arm/CONFIG_PATA_IT821X | 1 + baseconfig/arm/CONFIG_PATA_JMICRON | 1 + baseconfig/arm/CONFIG_PATA_NETCELL | 1 + baseconfig/arm/CONFIG_PATA_NINJA32 | 1 + baseconfig/arm/CONFIG_PATA_NS87410 | 1 + baseconfig/arm/CONFIG_PATA_NS87415 | 1 + baseconfig/arm/CONFIG_PATA_OPTI | 1 + baseconfig/arm/CONFIG_PATA_OPTIDMA | 1 + baseconfig/arm/CONFIG_PATA_PDC2027X | 1 + baseconfig/arm/CONFIG_PATA_PDC_OLD | 1 + baseconfig/arm/CONFIG_PATA_SERVERWORKS | 1 + baseconfig/arm/CONFIG_PATA_SIL680 | 1 + baseconfig/arm/CONFIG_PATA_SIS | 1 + baseconfig/arm/CONFIG_PATA_VIA | 1 + baseconfig/arm/CONFIG_PATA_WINBOND | 1 + baseconfig/arm/CONFIG_SATA_INIC162X | 1 + baseconfig/arm/CONFIG_SATA_NV | 1 + baseconfig/arm/CONFIG_SATA_PROMISE | 1 + baseconfig/arm/CONFIG_SATA_QSTOR | 1 + baseconfig/arm/CONFIG_SATA_SIL | 1 + baseconfig/arm/CONFIG_SATA_SIL24 | 1 + baseconfig/arm/CONFIG_SATA_SIS | 1 + baseconfig/arm/CONFIG_SATA_SVW | 1 + baseconfig/arm/CONFIG_SATA_SX4 | 1 + baseconfig/arm/CONFIG_SATA_ULI | 1 + baseconfig/arm/CONFIG_SATA_VIA | 1 + baseconfig/arm/CONFIG_SATA_VITESSE | 1 + baseconfig/{ => arm/arm64}/CONFIG_ATA_ACPI | 0 baseconfig/{ => arm/arm64}/CONFIG_PATA_ACPI | 0 baseconfig/arm/armv7/CONFIG_PATA_FTIDE010 | 1 - baseconfig/x86/CONFIG_ATA_ACPI | 1 + baseconfig/x86/CONFIG_HID_ASUS | 1 + baseconfig/x86/CONFIG_MMC_TOSHIBA_PCI | 1 + baseconfig/x86/CONFIG_PATA_ACPI | 1 + baseconfig/x86/CONFIG_PATA_ATIIXP | 1 + baseconfig/x86/CONFIG_PATA_MPIIX | 1 + baseconfig/x86/CONFIG_PATA_OLDPIIX | 1 + baseconfig/x86/CONFIG_PATA_SCH | 1 + baseconfig/x86/CONFIG_PATA_TOSHIBA | 1 + baseconfig/x86/CONFIG_PATA_TRIFLEX | 1 + baseconfig/{ => x86}/CONFIG_SENSORS_HDAPS | 0 kernel-aarch64-debug.config | 114 ++++++++++--------- kernel-aarch64.config | 114 ++++++++++--------- kernel-armv7hl-debug.config | 117 ++++++++++---------- kernel-armv7hl-lpae-debug.config | 117 ++++++++++---------- kernel-armv7hl-lpae.config | 117 ++++++++++---------- kernel-armv7hl.config | 117 ++++++++++---------- kernel-i686-PAE.config | 6 +- kernel-i686-PAEdebug.config | 6 +- kernel-i686-debug.config | 6 +- kernel-i686.config | 6 +- kernel-ppc64-debug.config | 28 ++--- kernel-ppc64.config | 28 ++--- kernel-ppc64le-debug.config | 28 ++--- kernel-ppc64le.config | 28 ++--- kernel-ppc64p7-debug.config | 28 ++--- kernel-ppc64p7.config | 28 ++--- kernel-s390x-debug.config | 28 ++--- kernel-s390x.config | 28 ++--- kernel-x86_64-debug.config | 6 +- kernel-x86_64.config | 6 +- 91 files changed, 516 insertions(+), 520 deletions(-) delete mode 100644 baseconfig/CONFIG_SURFACE3_WMI create mode 100644 baseconfig/arm/CONFIG_BLK_DEV_SX8 create mode 100644 baseconfig/arm/CONFIG_PATA_ALI create mode 100644 baseconfig/arm/CONFIG_PATA_AMD create mode 100644 baseconfig/arm/CONFIG_PATA_ARTOP create mode 100644 baseconfig/arm/CONFIG_PATA_ATP867X create mode 100644 baseconfig/arm/CONFIG_PATA_CMD640_PCI create mode 100644 baseconfig/arm/CONFIG_PATA_CMD64X create mode 100644 baseconfig/arm/CONFIG_PATA_CS5520 create mode 100644 baseconfig/arm/CONFIG_PATA_CS5530 create mode 100644 baseconfig/arm/CONFIG_PATA_CS5535 create mode 100644 baseconfig/arm/CONFIG_PATA_CS5536 create mode 100644 baseconfig/arm/CONFIG_PATA_EFAR create mode 100644 baseconfig/arm/CONFIG_PATA_HPT366 create mode 100644 baseconfig/arm/CONFIG_PATA_HPT37X create mode 100644 baseconfig/arm/CONFIG_PATA_HPT3X2N create mode 100644 baseconfig/arm/CONFIG_PATA_HPT3X3 create mode 100644 baseconfig/arm/CONFIG_PATA_IT8213 create mode 100644 baseconfig/arm/CONFIG_PATA_IT821X create mode 100644 baseconfig/arm/CONFIG_PATA_JMICRON create mode 100644 baseconfig/arm/CONFIG_PATA_NETCELL create mode 100644 baseconfig/arm/CONFIG_PATA_NINJA32 create mode 100644 baseconfig/arm/CONFIG_PATA_NS87410 create mode 100644 baseconfig/arm/CONFIG_PATA_NS87415 create mode 100644 baseconfig/arm/CONFIG_PATA_OPTI create mode 100644 baseconfig/arm/CONFIG_PATA_OPTIDMA create mode 100644 baseconfig/arm/CONFIG_PATA_PDC2027X create mode 100644 baseconfig/arm/CONFIG_PATA_PDC_OLD create mode 100644 baseconfig/arm/CONFIG_PATA_SERVERWORKS create mode 100644 baseconfig/arm/CONFIG_PATA_SIL680 create mode 100644 baseconfig/arm/CONFIG_PATA_SIS create mode 100644 baseconfig/arm/CONFIG_PATA_VIA create mode 100644 baseconfig/arm/CONFIG_PATA_WINBOND create mode 100644 baseconfig/arm/CONFIG_SATA_INIC162X create mode 100644 baseconfig/arm/CONFIG_SATA_NV create mode 100644 baseconfig/arm/CONFIG_SATA_PROMISE create mode 100644 baseconfig/arm/CONFIG_SATA_QSTOR create mode 100644 baseconfig/arm/CONFIG_SATA_SIL create mode 100644 baseconfig/arm/CONFIG_SATA_SIL24 create mode 100644 baseconfig/arm/CONFIG_SATA_SIS create mode 100644 baseconfig/arm/CONFIG_SATA_SVW create mode 100644 baseconfig/arm/CONFIG_SATA_SX4 create mode 100644 baseconfig/arm/CONFIG_SATA_ULI create mode 100644 baseconfig/arm/CONFIG_SATA_VIA create mode 100644 baseconfig/arm/CONFIG_SATA_VITESSE rename baseconfig/{ => arm/arm64}/CONFIG_ATA_ACPI (100%) rename baseconfig/{ => arm/arm64}/CONFIG_PATA_ACPI (100%) delete mode 100644 baseconfig/arm/armv7/CONFIG_PATA_FTIDE010 create mode 100644 baseconfig/x86/CONFIG_ATA_ACPI create mode 100644 baseconfig/x86/CONFIG_HID_ASUS create mode 100644 baseconfig/x86/CONFIG_MMC_TOSHIBA_PCI create mode 100644 baseconfig/x86/CONFIG_PATA_ACPI create mode 100644 baseconfig/x86/CONFIG_PATA_ATIIXP create mode 100644 baseconfig/x86/CONFIG_PATA_MPIIX create mode 100644 baseconfig/x86/CONFIG_PATA_OLDPIIX create mode 100644 baseconfig/x86/CONFIG_PATA_SCH create mode 100644 baseconfig/x86/CONFIG_PATA_TOSHIBA create mode 100644 baseconfig/x86/CONFIG_PATA_TRIFLEX rename baseconfig/{ => x86}/CONFIG_SENSORS_HDAPS (100%) diff --git a/baseconfig/CONFIG_HID_ASUS b/baseconfig/CONFIG_HID_ASUS index efc1ef4f8..b5df524a7 100644 --- a/baseconfig/CONFIG_HID_ASUS +++ b/baseconfig/CONFIG_HID_ASUS @@ -1 +1 @@ -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set diff --git a/baseconfig/CONFIG_MMC_TOSHIBA_PCI b/baseconfig/CONFIG_MMC_TOSHIBA_PCI index 9372cd4fe..2ae27a7ef 100644 --- a/baseconfig/CONFIG_MMC_TOSHIBA_PCI +++ b/baseconfig/CONFIG_MMC_TOSHIBA_PCI @@ -1 +1 @@ -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set diff --git a/baseconfig/CONFIG_PATA_ARASAN_CF b/baseconfig/CONFIG_PATA_ARASAN_CF index b6c8b16ae..edd438e6c 100644 --- a/baseconfig/CONFIG_PATA_ARASAN_CF +++ b/baseconfig/CONFIG_PATA_ARASAN_CF @@ -1 +1 @@ -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set diff --git a/baseconfig/CONFIG_PATA_ATIIXP b/baseconfig/CONFIG_PATA_ATIIXP index 0089d45c9..2730e0e76 100644 --- a/baseconfig/CONFIG_PATA_ATIIXP +++ b/baseconfig/CONFIG_PATA_ATIIXP @@ -1 +1 @@ -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set diff --git a/baseconfig/CONFIG_PATA_CYPRESS b/baseconfig/CONFIG_PATA_CYPRESS index 3ad2c2cec..901fb21a9 100644 --- a/baseconfig/CONFIG_PATA_CYPRESS +++ b/baseconfig/CONFIG_PATA_CYPRESS @@ -1 +1 @@ -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set diff --git a/baseconfig/CONFIG_PATA_MPIIX b/baseconfig/CONFIG_PATA_MPIIX index a29c081f6..241149b47 100644 --- a/baseconfig/CONFIG_PATA_MPIIX +++ b/baseconfig/CONFIG_PATA_MPIIX @@ -1 +1 @@ -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set diff --git a/baseconfig/CONFIG_PATA_OLDPIIX b/baseconfig/CONFIG_PATA_OLDPIIX index a3a6f6f6f..b35bb81d0 100644 --- a/baseconfig/CONFIG_PATA_OLDPIIX +++ b/baseconfig/CONFIG_PATA_OLDPIIX @@ -1 +1 @@ -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set diff --git a/baseconfig/CONFIG_PATA_RDC b/baseconfig/CONFIG_PATA_RDC index 011a98d5a..48afa962b 100644 --- a/baseconfig/CONFIG_PATA_RDC +++ b/baseconfig/CONFIG_PATA_RDC @@ -1 +1 @@ -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set diff --git a/baseconfig/CONFIG_PATA_SCH b/baseconfig/CONFIG_PATA_SCH index 2b0924997..52035bf53 100644 --- a/baseconfig/CONFIG_PATA_SCH +++ b/baseconfig/CONFIG_PATA_SCH @@ -1 +1 @@ -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set diff --git a/baseconfig/CONFIG_PATA_TOSHIBA b/baseconfig/CONFIG_PATA_TOSHIBA index 1fe4524d6..ffe9957f1 100644 --- a/baseconfig/CONFIG_PATA_TOSHIBA +++ b/baseconfig/CONFIG_PATA_TOSHIBA @@ -1 +1 @@ -CONFIG_PATA_TOSHIBA=m +# CONFIG_PATA_TOSHIBA is not set diff --git a/baseconfig/CONFIG_PATA_TRIFLEX b/baseconfig/CONFIG_PATA_TRIFLEX index 09a247f65..5da0e57c4 100644 --- a/baseconfig/CONFIG_PATA_TRIFLEX +++ b/baseconfig/CONFIG_PATA_TRIFLEX @@ -1 +1 @@ -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TRIFLEX is not set diff --git a/baseconfig/CONFIG_SURFACE3_WMI b/baseconfig/CONFIG_SURFACE3_WMI deleted file mode 100644 index d2fbd9c7b..000000000 --- a/baseconfig/CONFIG_SURFACE3_WMI +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SURFACE3_WMI=m diff --git a/baseconfig/CONFIG_SURFACE_3_BUTTON b/baseconfig/CONFIG_SURFACE_3_BUTTON index 8ba50033b..5b0621446 100644 --- a/baseconfig/CONFIG_SURFACE_3_BUTTON +++ b/baseconfig/CONFIG_SURFACE_3_BUTTON @@ -1 +1 @@ -CONFIG_SURFACE_3_BUTTON=m +# CONFIG_SURFACE_3_BUTTON is not set diff --git a/baseconfig/arm/CONFIG_BLK_DEV_SX8 b/baseconfig/arm/CONFIG_BLK_DEV_SX8 new file mode 100644 index 000000000..76e0342ed --- /dev/null +++ b/baseconfig/arm/CONFIG_BLK_DEV_SX8 @@ -0,0 +1 @@ +# CONFIG_BLK_DEV_SX8 is not set diff --git a/baseconfig/arm/CONFIG_PATA_ALI b/baseconfig/arm/CONFIG_PATA_ALI new file mode 100644 index 000000000..15c814454 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_ALI @@ -0,0 +1 @@ +# CONFIG_PATA_ALI is not set diff --git a/baseconfig/arm/CONFIG_PATA_AMD b/baseconfig/arm/CONFIG_PATA_AMD new file mode 100644 index 000000000..33a58facc --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_AMD @@ -0,0 +1 @@ +# CONFIG_PATA_AMD is not set diff --git a/baseconfig/arm/CONFIG_PATA_ARTOP b/baseconfig/arm/CONFIG_PATA_ARTOP new file mode 100644 index 000000000..a4e7eb3b0 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_ARTOP @@ -0,0 +1 @@ +# CONFIG_PATA_ARTOP is not set diff --git a/baseconfig/arm/CONFIG_PATA_ATP867X b/baseconfig/arm/CONFIG_PATA_ATP867X new file mode 100644 index 000000000..5e66402b8 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_ATP867X @@ -0,0 +1 @@ +# CONFIG_PATA_ATP867X is not set diff --git a/baseconfig/arm/CONFIG_PATA_CMD640_PCI b/baseconfig/arm/CONFIG_PATA_CMD640_PCI new file mode 100644 index 000000000..9244705d2 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_CMD640_PCI @@ -0,0 +1 @@ +# CONFIG_PATA_CMD640_PCI is not set diff --git a/baseconfig/arm/CONFIG_PATA_CMD64X b/baseconfig/arm/CONFIG_PATA_CMD64X new file mode 100644 index 000000000..eb4773083 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_CMD64X @@ -0,0 +1 @@ +# CONFIG_PATA_CMD64X is not set diff --git a/baseconfig/arm/CONFIG_PATA_CS5520 b/baseconfig/arm/CONFIG_PATA_CS5520 new file mode 100644 index 000000000..2328c0724 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_CS5520 @@ -0,0 +1 @@ +# CONFIG_PATA_CS5520 is not set diff --git a/baseconfig/arm/CONFIG_PATA_CS5530 b/baseconfig/arm/CONFIG_PATA_CS5530 new file mode 100644 index 000000000..106b33a1a --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_CS5530 @@ -0,0 +1 @@ +# CONFIG_PATA_CS5530 is not set diff --git a/baseconfig/arm/CONFIG_PATA_CS5535 b/baseconfig/arm/CONFIG_PATA_CS5535 new file mode 100644 index 000000000..331016055 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_CS5535 @@ -0,0 +1 @@ +# CONFIG_PATA_CS5535 is not set diff --git a/baseconfig/arm/CONFIG_PATA_CS5536 b/baseconfig/arm/CONFIG_PATA_CS5536 new file mode 100644 index 000000000..e82dab7f2 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_CS5536 @@ -0,0 +1 @@ +# CONFIG_PATA_CS5536 is not set diff --git a/baseconfig/arm/CONFIG_PATA_EFAR b/baseconfig/arm/CONFIG_PATA_EFAR new file mode 100644 index 000000000..d1957bf57 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_EFAR @@ -0,0 +1 @@ +# CONFIG_PATA_EFAR is not set diff --git a/baseconfig/arm/CONFIG_PATA_HPT366 b/baseconfig/arm/CONFIG_PATA_HPT366 new file mode 100644 index 000000000..b67ac339d --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_HPT366 @@ -0,0 +1 @@ +# CONFIG_PATA_HPT366 is not set diff --git a/baseconfig/arm/CONFIG_PATA_HPT37X b/baseconfig/arm/CONFIG_PATA_HPT37X new file mode 100644 index 000000000..990af0509 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_HPT37X @@ -0,0 +1 @@ +# CONFIG_PATA_HPT37X is not set diff --git a/baseconfig/arm/CONFIG_PATA_HPT3X2N b/baseconfig/arm/CONFIG_PATA_HPT3X2N new file mode 100644 index 000000000..471fcff45 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_HPT3X2N @@ -0,0 +1 @@ +# CONFIG_PATA_HPT3X2N is not set diff --git a/baseconfig/arm/CONFIG_PATA_HPT3X3 b/baseconfig/arm/CONFIG_PATA_HPT3X3 new file mode 100644 index 000000000..9fc36a00b --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_HPT3X3 @@ -0,0 +1 @@ +# CONFIG_PATA_HPT3X3 is not set diff --git a/baseconfig/arm/CONFIG_PATA_IT8213 b/baseconfig/arm/CONFIG_PATA_IT8213 new file mode 100644 index 000000000..47fbeb7f5 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_IT8213 @@ -0,0 +1 @@ +# CONFIG_PATA_IT8213 is not set diff --git a/baseconfig/arm/CONFIG_PATA_IT821X b/baseconfig/arm/CONFIG_PATA_IT821X new file mode 100644 index 000000000..c29d7f7cb --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_IT821X @@ -0,0 +1 @@ +# CONFIG_PATA_IT821X is not set diff --git a/baseconfig/arm/CONFIG_PATA_JMICRON b/baseconfig/arm/CONFIG_PATA_JMICRON new file mode 100644 index 000000000..55695c65f --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_JMICRON @@ -0,0 +1 @@ +# CONFIG_PATA_JMICRON is not set diff --git a/baseconfig/arm/CONFIG_PATA_NETCELL b/baseconfig/arm/CONFIG_PATA_NETCELL new file mode 100644 index 000000000..e598ae303 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_NETCELL @@ -0,0 +1 @@ +# CONFIG_PATA_NETCELL is not set diff --git a/baseconfig/arm/CONFIG_PATA_NINJA32 b/baseconfig/arm/CONFIG_PATA_NINJA32 new file mode 100644 index 000000000..9deb5dff7 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_NINJA32 @@ -0,0 +1 @@ +# CONFIG_PATA_NINJA32 is not set diff --git a/baseconfig/arm/CONFIG_PATA_NS87410 b/baseconfig/arm/CONFIG_PATA_NS87410 new file mode 100644 index 000000000..32f9c72e0 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_NS87410 @@ -0,0 +1 @@ +# CONFIG_PATA_NS87410 is not set diff --git a/baseconfig/arm/CONFIG_PATA_NS87415 b/baseconfig/arm/CONFIG_PATA_NS87415 new file mode 100644 index 000000000..d12f9010d --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_NS87415 @@ -0,0 +1 @@ +# CONFIG_PATA_NS87415 is not set diff --git a/baseconfig/arm/CONFIG_PATA_OPTI b/baseconfig/arm/CONFIG_PATA_OPTI new file mode 100644 index 000000000..f95b6c966 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_OPTI @@ -0,0 +1 @@ +# CONFIG_PATA_OPTI is not set diff --git a/baseconfig/arm/CONFIG_PATA_OPTIDMA b/baseconfig/arm/CONFIG_PATA_OPTIDMA new file mode 100644 index 000000000..6bf1d2e8a --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_OPTIDMA @@ -0,0 +1 @@ +# CONFIG_PATA_OPTIDMA is not set diff --git a/baseconfig/arm/CONFIG_PATA_PDC2027X b/baseconfig/arm/CONFIG_PATA_PDC2027X new file mode 100644 index 000000000..c8ad0b826 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_PDC2027X @@ -0,0 +1 @@ +# CONFIG_PATA_PDC2027X is not set diff --git a/baseconfig/arm/CONFIG_PATA_PDC_OLD b/baseconfig/arm/CONFIG_PATA_PDC_OLD new file mode 100644 index 000000000..d77240fcf --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_PDC_OLD @@ -0,0 +1 @@ +# CONFIG_PATA_PDC_OLD is not set diff --git a/baseconfig/arm/CONFIG_PATA_SERVERWORKS b/baseconfig/arm/CONFIG_PATA_SERVERWORKS new file mode 100644 index 000000000..5cacac7a6 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_SERVERWORKS @@ -0,0 +1 @@ +# CONFIG_PATA_SERVERWORKS is not set diff --git a/baseconfig/arm/CONFIG_PATA_SIL680 b/baseconfig/arm/CONFIG_PATA_SIL680 new file mode 100644 index 000000000..75224a38b --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_SIL680 @@ -0,0 +1 @@ +# CONFIG_PATA_SIL680 is not set diff --git a/baseconfig/arm/CONFIG_PATA_SIS b/baseconfig/arm/CONFIG_PATA_SIS new file mode 100644 index 000000000..8c547495a --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_SIS @@ -0,0 +1 @@ +# CONFIG_PATA_SIS is not set diff --git a/baseconfig/arm/CONFIG_PATA_VIA b/baseconfig/arm/CONFIG_PATA_VIA new file mode 100644 index 000000000..9deaa6c3c --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_VIA @@ -0,0 +1 @@ +# CONFIG_PATA_VIA is not set diff --git a/baseconfig/arm/CONFIG_PATA_WINBOND b/baseconfig/arm/CONFIG_PATA_WINBOND new file mode 100644 index 000000000..9b3eb6289 --- /dev/null +++ b/baseconfig/arm/CONFIG_PATA_WINBOND @@ -0,0 +1 @@ +# CONFIG_PATA_WINBOND is not set diff --git a/baseconfig/arm/CONFIG_SATA_INIC162X b/baseconfig/arm/CONFIG_SATA_INIC162X new file mode 100644 index 000000000..6abf495a0 --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_INIC162X @@ -0,0 +1 @@ +# CONFIG_SATA_INIC162X is not set diff --git a/baseconfig/arm/CONFIG_SATA_NV b/baseconfig/arm/CONFIG_SATA_NV new file mode 100644 index 000000000..c8419327a --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_NV @@ -0,0 +1 @@ +# CONFIG_SATA_NV is not set diff --git a/baseconfig/arm/CONFIG_SATA_PROMISE b/baseconfig/arm/CONFIG_SATA_PROMISE new file mode 100644 index 000000000..2af59fe8e --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_PROMISE @@ -0,0 +1 @@ +# CONFIG_SATA_PROMISE is not set diff --git a/baseconfig/arm/CONFIG_SATA_QSTOR b/baseconfig/arm/CONFIG_SATA_QSTOR new file mode 100644 index 000000000..8b3cce9ab --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_QSTOR @@ -0,0 +1 @@ +# CONFIG_SATA_QSTOR is not set diff --git a/baseconfig/arm/CONFIG_SATA_SIL b/baseconfig/arm/CONFIG_SATA_SIL new file mode 100644 index 000000000..5d551ee6a --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_SIL @@ -0,0 +1 @@ +# CONFIG_SATA_SIL is not set diff --git a/baseconfig/arm/CONFIG_SATA_SIL24 b/baseconfig/arm/CONFIG_SATA_SIL24 new file mode 100644 index 000000000..7526a06a0 --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_SIL24 @@ -0,0 +1 @@ +# CONFIG_SATA_SIL24 is not set diff --git a/baseconfig/arm/CONFIG_SATA_SIS b/baseconfig/arm/CONFIG_SATA_SIS new file mode 100644 index 000000000..1cd4ae75f --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_SIS @@ -0,0 +1 @@ +# CONFIG_SATA_SIS is not set diff --git a/baseconfig/arm/CONFIG_SATA_SVW b/baseconfig/arm/CONFIG_SATA_SVW new file mode 100644 index 000000000..625275c8d --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_SVW @@ -0,0 +1 @@ +# CONFIG_SATA_SVW is not set diff --git a/baseconfig/arm/CONFIG_SATA_SX4 b/baseconfig/arm/CONFIG_SATA_SX4 new file mode 100644 index 000000000..abbd89112 --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_SX4 @@ -0,0 +1 @@ +# CONFIG_SATA_SX4 is not set diff --git a/baseconfig/arm/CONFIG_SATA_ULI b/baseconfig/arm/CONFIG_SATA_ULI new file mode 100644 index 000000000..b50271fc3 --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_ULI @@ -0,0 +1 @@ +# CONFIG_SATA_ULI is not set diff --git a/baseconfig/arm/CONFIG_SATA_VIA b/baseconfig/arm/CONFIG_SATA_VIA new file mode 100644 index 000000000..f5754463a --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_VIA @@ -0,0 +1 @@ +# CONFIG_SATA_VIA is not set diff --git a/baseconfig/arm/CONFIG_SATA_VITESSE b/baseconfig/arm/CONFIG_SATA_VITESSE new file mode 100644 index 000000000..59856ec7b --- /dev/null +++ b/baseconfig/arm/CONFIG_SATA_VITESSE @@ -0,0 +1 @@ +# CONFIG_SATA_VITESSE is not set diff --git a/baseconfig/CONFIG_ATA_ACPI b/baseconfig/arm/arm64/CONFIG_ATA_ACPI similarity index 100% rename from baseconfig/CONFIG_ATA_ACPI rename to baseconfig/arm/arm64/CONFIG_ATA_ACPI diff --git a/baseconfig/CONFIG_PATA_ACPI b/baseconfig/arm/arm64/CONFIG_PATA_ACPI similarity index 100% rename from baseconfig/CONFIG_PATA_ACPI rename to baseconfig/arm/arm64/CONFIG_PATA_ACPI diff --git a/baseconfig/arm/armv7/CONFIG_PATA_FTIDE010 b/baseconfig/arm/armv7/CONFIG_PATA_FTIDE010 deleted file mode 100644 index c20fa4d0f..000000000 --- a/baseconfig/arm/armv7/CONFIG_PATA_FTIDE010 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_PATA_FTIDE010 is not set diff --git a/baseconfig/x86/CONFIG_ATA_ACPI b/baseconfig/x86/CONFIG_ATA_ACPI new file mode 100644 index 000000000..a0be76e56 --- /dev/null +++ b/baseconfig/x86/CONFIG_ATA_ACPI @@ -0,0 +1 @@ +CONFIG_ATA_ACPI=y diff --git a/baseconfig/x86/CONFIG_HID_ASUS b/baseconfig/x86/CONFIG_HID_ASUS new file mode 100644 index 000000000..efc1ef4f8 --- /dev/null +++ b/baseconfig/x86/CONFIG_HID_ASUS @@ -0,0 +1 @@ +CONFIG_HID_ASUS=m diff --git a/baseconfig/x86/CONFIG_MMC_TOSHIBA_PCI b/baseconfig/x86/CONFIG_MMC_TOSHIBA_PCI new file mode 100644 index 000000000..9372cd4fe --- /dev/null +++ b/baseconfig/x86/CONFIG_MMC_TOSHIBA_PCI @@ -0,0 +1 @@ +CONFIG_MMC_TOSHIBA_PCI=m diff --git a/baseconfig/x86/CONFIG_PATA_ACPI b/baseconfig/x86/CONFIG_PATA_ACPI new file mode 100644 index 000000000..c3bc7866f --- /dev/null +++ b/baseconfig/x86/CONFIG_PATA_ACPI @@ -0,0 +1 @@ +CONFIG_PATA_ACPI=m diff --git a/baseconfig/x86/CONFIG_PATA_ATIIXP b/baseconfig/x86/CONFIG_PATA_ATIIXP new file mode 100644 index 000000000..0089d45c9 --- /dev/null +++ b/baseconfig/x86/CONFIG_PATA_ATIIXP @@ -0,0 +1 @@ +CONFIG_PATA_ATIIXP=m diff --git a/baseconfig/x86/CONFIG_PATA_MPIIX b/baseconfig/x86/CONFIG_PATA_MPIIX new file mode 100644 index 000000000..a29c081f6 --- /dev/null +++ b/baseconfig/x86/CONFIG_PATA_MPIIX @@ -0,0 +1 @@ +CONFIG_PATA_MPIIX=m diff --git a/baseconfig/x86/CONFIG_PATA_OLDPIIX b/baseconfig/x86/CONFIG_PATA_OLDPIIX new file mode 100644 index 000000000..a3a6f6f6f --- /dev/null +++ b/baseconfig/x86/CONFIG_PATA_OLDPIIX @@ -0,0 +1 @@ +CONFIG_PATA_OLDPIIX=m diff --git a/baseconfig/x86/CONFIG_PATA_SCH b/baseconfig/x86/CONFIG_PATA_SCH new file mode 100644 index 000000000..2b0924997 --- /dev/null +++ b/baseconfig/x86/CONFIG_PATA_SCH @@ -0,0 +1 @@ +CONFIG_PATA_SCH=m diff --git a/baseconfig/x86/CONFIG_PATA_TOSHIBA b/baseconfig/x86/CONFIG_PATA_TOSHIBA new file mode 100644 index 000000000..1fe4524d6 --- /dev/null +++ b/baseconfig/x86/CONFIG_PATA_TOSHIBA @@ -0,0 +1 @@ +CONFIG_PATA_TOSHIBA=m diff --git a/baseconfig/x86/CONFIG_PATA_TRIFLEX b/baseconfig/x86/CONFIG_PATA_TRIFLEX new file mode 100644 index 000000000..09a247f65 --- /dev/null +++ b/baseconfig/x86/CONFIG_PATA_TRIFLEX @@ -0,0 +1 @@ +CONFIG_PATA_TRIFLEX=m diff --git a/baseconfig/CONFIG_SENSORS_HDAPS b/baseconfig/x86/CONFIG_SENSORS_HDAPS similarity index 100% rename from baseconfig/CONFIG_SENSORS_HDAPS rename to baseconfig/x86/CONFIG_SENSORS_HDAPS diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index bdc54c3fe..0b67e4f6d 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -552,7 +552,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SKD=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_DEV_UMEM=m @@ -1795,7 +1795,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -3126,7 +3126,7 @@ CONFIG_MMC_SPI=m CONFIG_MMC_SUNXI=m # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3880,54 +3880,54 @@ CONFIG_PARMAN=m # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_OPTI is not set CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set # CONFIG_PC104 is not set # CONFIG_PC87413_WDT is not set CONFIG_PCCARD=y @@ -4570,20 +4570,20 @@ CONFIG_SATA_AHCI_SEATTLE=m CONFIG_SATA_AHCI=y # CONFIG_SATA_DWC is not set # CONFIG_SATA_HIGHBANK is not set -CONFIG_SATA_INIC162X=m +# CONFIG_SATA_INIC162X is not set CONFIG_SATA_MV=m -CONFIG_SATA_NV=m +# CONFIG_SATA_NV is not set CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set # CONFIG_SATA_ZPODD is not set # CONFIG_SBC7240_WDT is not set # CONFIG_SBC8360_WDT is not set @@ -4776,7 +4776,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -5453,8 +5452,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m CONFIG_SUNXI_WATCHDOG=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y CONFIG_SWAP=y CONFIG_SWIOTLB=y diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 3d4bda263..60b736513 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -552,7 +552,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SKD=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_DEV_UMEM=m @@ -1778,7 +1778,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -3106,7 +3106,7 @@ CONFIG_MMC_SPI=m CONFIG_MMC_SUNXI=m # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3859,54 +3859,54 @@ CONFIG_PARMAN=m # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_OPTI is not set CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set # CONFIG_PC104 is not set # CONFIG_PC87413_WDT is not set CONFIG_PCCARD=y @@ -4548,20 +4548,20 @@ CONFIG_SATA_AHCI_SEATTLE=m CONFIG_SATA_AHCI=y # CONFIG_SATA_DWC is not set # CONFIG_SATA_HIGHBANK is not set -CONFIG_SATA_INIC162X=m +# CONFIG_SATA_INIC162X is not set CONFIG_SATA_MV=m -CONFIG_SATA_NV=m +# CONFIG_SATA_NV is not set CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set # CONFIG_SATA_ZPODD is not set # CONFIG_SBC7240_WDT is not set # CONFIG_SBC8360_WDT is not set @@ -4754,7 +4754,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -5430,8 +5429,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m CONFIG_SUNXI_WATCHDOG=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y CONFIG_SWAP=y CONFIG_SWIOTLB=y diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 8f746d750..0c66b3b99 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -343,7 +343,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATAGS_PROC=y @@ -594,7 +593,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SKD=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_DEV_UMEM=m @@ -1933,7 +1932,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -3338,7 +3337,7 @@ CONFIG_MMC_SUNXI=m # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m # CONFIG_MMC_TMIO is not set -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -4166,57 +4165,55 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -# CONFIG_PATA_FTIDE010 is not set -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3 is not set CONFIG_PATA_IMX=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_OPTI is not set CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set # CONFIG_PC104 is not set # CONFIG_PC87413_WDT is not set CONFIG_PCCARD=y @@ -4930,20 +4927,20 @@ CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_AHCI=y # CONFIG_SATA_DWC is not set CONFIG_SATA_HIGHBANK=m -CONFIG_SATA_INIC162X=m +# CONFIG_SATA_INIC162X is not set CONFIG_SATA_MV=m -CONFIG_SATA_NV=m +# CONFIG_SATA_NV is not set CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set # CONFIG_SATA_ZPODD is not set # CONFIG_SBC7240_WDT is not set # CONFIG_SBC8360_WDT is not set @@ -5137,7 +5134,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_GPIO_FAN=m -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -5945,8 +5941,7 @@ CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m CONFIG_SUNXI_SRAM=y CONFIG_SUNXI_WATCHDOG=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y CONFIG_SWAP=y CONFIG_SWIOTLB=y diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 12762307f..dfa960659 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -329,7 +329,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATAGS_PROC=y @@ -571,7 +570,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SKD=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_DEV_UMEM=m @@ -1828,7 +1827,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -3184,7 +3183,7 @@ CONFIG_MMC_SUNXI=m # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m # CONFIG_MMC_TMIO is not set -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3951,56 +3950,54 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -# CONFIG_PATA_FTIDE010 is not set -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_OPTI is not set CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set # CONFIG_PC104 is not set # CONFIG_PC87413_WDT is not set CONFIG_PCCARD=y @@ -4626,20 +4623,20 @@ CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_AHCI=y # CONFIG_SATA_DWC is not set CONFIG_SATA_HIGHBANK=m -CONFIG_SATA_INIC162X=m +# CONFIG_SATA_INIC162X is not set CONFIG_SATA_MV=m -CONFIG_SATA_NV=m +# CONFIG_SATA_NV is not set CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set # CONFIG_SATA_ZPODD is not set # CONFIG_SBC7240_WDT is not set # CONFIG_SBC8360_WDT is not set @@ -4831,7 +4828,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_GPIO_FAN=m -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -5546,8 +5542,7 @@ CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m CONFIG_SUNXI_SRAM=y CONFIG_SUNXI_WATCHDOG=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y CONFIG_SWAP=y CONFIG_SWIOTLB=y diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index 36149068b..7064c0a23 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -328,7 +328,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATAGS_PROC=y @@ -570,7 +569,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SKD=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_DEV_UMEM=m @@ -1811,7 +1810,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -3164,7 +3163,7 @@ CONFIG_MMC_SUNXI=m # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m # CONFIG_MMC_TMIO is not set -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3930,56 +3929,54 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -# CONFIG_PATA_FTIDE010 is not set -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_OPTI is not set CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set # CONFIG_PC104 is not set # CONFIG_PC87413_WDT is not set CONFIG_PCCARD=y @@ -4604,20 +4601,20 @@ CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_AHCI=y # CONFIG_SATA_DWC is not set CONFIG_SATA_HIGHBANK=m -CONFIG_SATA_INIC162X=m +# CONFIG_SATA_INIC162X is not set CONFIG_SATA_MV=m -CONFIG_SATA_NV=m +# CONFIG_SATA_NV is not set CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set # CONFIG_SATA_ZPODD is not set # CONFIG_SBC7240_WDT is not set # CONFIG_SBC8360_WDT is not set @@ -4809,7 +4806,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_GPIO_FAN=m -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -5523,8 +5519,7 @@ CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m CONFIG_SUNXI_SRAM=y CONFIG_SUNXI_WATCHDOG=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y CONFIG_SWAP=y CONFIG_SWIOTLB=y diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 4699b0930..abfa3a7a9 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -342,7 +342,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATAGS_PROC=y @@ -593,7 +592,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SKD=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_THROTTLING_LOW is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_DEV_UMEM=m @@ -1916,7 +1915,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -3318,7 +3317,7 @@ CONFIG_MMC_SUNXI=m # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m # CONFIG_MMC_TMIO is not set -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -4145,57 +4144,55 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -# CONFIG_PATA_FTIDE010 is not set -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3 is not set CONFIG_PATA_IMX=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_OPTI is not set CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set # CONFIG_PC104 is not set # CONFIG_PC87413_WDT is not set CONFIG_PCCARD=y @@ -4908,20 +4905,20 @@ CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_AHCI=y # CONFIG_SATA_DWC is not set CONFIG_SATA_HIGHBANK=m -CONFIG_SATA_INIC162X=m +# CONFIG_SATA_INIC162X is not set CONFIG_SATA_MV=m -CONFIG_SATA_NV=m +# CONFIG_SATA_NV is not set CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set # CONFIG_SATA_ZPODD is not set # CONFIG_SBC7240_WDT is not set # CONFIG_SBC8360_WDT is not set @@ -5115,7 +5112,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_GPIO_FAN=m -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -5922,8 +5918,7 @@ CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m CONFIG_SUNXI_SRAM=y CONFIG_SUNXI_WATCHDOG=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y CONFIG_SWAP=y CONFIG_SWIOTLB=y diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index ab8051456..857341b84 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -3748,7 +3748,7 @@ CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m @@ -3758,7 +3758,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3782,7 +3782,7 @@ CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 15782ae25..e300a78b8 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -3768,7 +3768,7 @@ CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m @@ -3778,7 +3778,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3802,7 +3802,7 @@ CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 3d3def5cb..7cba83e63 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -3768,7 +3768,7 @@ CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m @@ -3778,7 +3778,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3802,7 +3802,7 @@ CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m diff --git a/kernel-i686.config b/kernel-i686.config index 7698a956d..716993137 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -3748,7 +3748,7 @@ CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m @@ -3758,7 +3758,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3782,7 +3782,7 @@ CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index d4c82c5a2..86745699d 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -185,7 +185,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1588,7 +1587,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2866,7 +2865,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3574,12 +3573,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3587,7 +3585,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3600,13 +3598,13 @@ CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MACIO=y CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m CONFIG_PATA_OF_PLATFORM=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m @@ -3614,15 +3612,15 @@ CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m CONFIG_PATA_PLATFORM=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4338,7 +4336,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4946,8 +4943,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND=y CONFIG_SWAP=y diff --git a/kernel-ppc64.config b/kernel-ppc64.config index ef81c97e1..ba4c699be 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -184,7 +184,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1570,7 +1569,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2845,7 +2844,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3552,12 +3551,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3565,7 +3563,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3578,13 +3576,13 @@ CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MACIO=y CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m CONFIG_PATA_OF_PLATFORM=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m @@ -3592,15 +3590,15 @@ CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m CONFIG_PATA_PLATFORM=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4315,7 +4313,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4922,8 +4919,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND=y CONFIG_SWAP=y diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index d26b1b9d5..d00d68bda 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -178,7 +178,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1541,7 +1540,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2811,7 +2810,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3518,12 +3517,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3531,7 +3529,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3543,12 +3541,12 @@ CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m @@ -3556,15 +3554,15 @@ CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4277,7 +4275,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4874,8 +4871,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND=y CONFIG_SWAP=y diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 8ce598a5c..e33adfbfa 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -177,7 +177,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1523,7 +1522,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2790,7 +2789,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3496,12 +3495,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3509,7 +3507,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3521,12 +3519,12 @@ CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m @@ -3534,15 +3532,15 @@ CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4254,7 +4252,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4850,8 +4847,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND=y CONFIG_SWAP=y diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config index 1b81bf952..57dd5e075 100644 --- a/kernel-ppc64p7-debug.config +++ b/kernel-ppc64p7-debug.config @@ -178,7 +178,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1540,7 +1539,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2810,7 +2809,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3517,12 +3516,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3530,7 +3528,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3542,12 +3540,12 @@ CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m @@ -3555,15 +3553,15 @@ CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4276,7 +4274,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4873,8 +4870,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND=y CONFIG_SWAP=y diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config index d09da0df8..ef85e80b1 100644 --- a/kernel-ppc64p7.config +++ b/kernel-ppc64p7.config @@ -177,7 +177,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1522,7 +1521,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2789,7 +2788,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3495,12 +3494,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3508,7 +3506,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3520,12 +3518,12 @@ CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m @@ -3533,15 +3531,15 @@ CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4253,7 +4251,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4849,8 +4846,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND=y CONFIG_SWAP=y diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 7412eca03..36d04c269 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -181,7 +181,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1507,7 +1506,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2748,7 +2747,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3447,12 +3446,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3460,7 +3458,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3472,27 +3470,27 @@ CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4180,7 +4178,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4770,8 +4767,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set # CONFIG_SUSPEND is not set CONFIG_SWAP=y # CONFIG_SW_SYNC is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index ffe12518a..4685bc0c5 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -180,7 +180,6 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_ASYNC_TX_DMA=y CONFIG_AT76C50X_USB=m CONFIG_AT803X_PHY=m -CONFIG_ATA_ACPI=y CONFIG_ATA_BMDMA=y CONFIG_ATA_GENERIC=m CONFIG_ATALK=m @@ -1489,7 +1488,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ALPS=m CONFIG_HID_APPLEIR=m CONFIG_HID_APPLE=m -CONFIG_HID_ASUS=m +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HID_BELKIN=m @@ -2727,7 +2726,7 @@ CONFIG_MMC_SDRICOH_CS=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_TEST is not set CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_USHC=m CONFIG_MMC_VIA_SDMMC=m @@ -3425,12 +3424,11 @@ CONFIG_PARMAN=m # CONFIG_PARPORT is not set # CONFIG_PARPORT_PC is not set CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_ATIIXP is not set CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD640_PCI=m CONFIG_PATA_CMD64X=m @@ -3438,7 +3436,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3450,27 +3448,27 @@ CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m # CONFIG_PATA_LEGACY is not set CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m +# CONFIG_PATA_MPIIX is not set CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m +# CONFIG_PATA_OLDPIIX is not set CONFIG_PATA_OPTIDMA=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set -CONFIG_PATA_SCH=m +# CONFIG_PATA_SCH is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m # CONFIG_PC104 is not set @@ -4157,7 +4155,6 @@ CONFIG_SENSORS_G762=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_HDAPS=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843 is not set @@ -4746,8 +4743,7 @@ CONFIG_SUNRPC_DEBUG=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_SURFACE_3_BUTTON=m -CONFIG_SURFACE3_WMI=m +# CONFIG_SURFACE_3_BUTTON is not set # CONFIG_SUSPEND is not set CONFIG_SWAP=y # CONFIG_SW_SYNC is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 7f2d43696..5fa587c8d 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -3812,7 +3812,7 @@ CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m @@ -3822,7 +3822,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3846,7 +3846,7 @@ CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m diff --git a/kernel-x86_64.config b/kernel-x86_64.config index ed8572895..0dcddee27 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -3792,7 +3792,7 @@ CONFIG_PARTITION_ADVANCED=y CONFIG_PATA_ACPI=m CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m -CONFIG_PATA_ARASAN_CF=m +# CONFIG_PATA_ARASAN_CF is not set CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m @@ -3802,7 +3802,7 @@ CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m +# CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m @@ -3826,7 +3826,7 @@ CONFIG_PATA_PCMCIA=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set -CONFIG_PATA_RDC=m +# CONFIG_PATA_RDC is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=m From 7baeeb4ccbfa64367afb43d59de8799bb6d2430d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 1 Oct 2017 20:01:33 +0100 Subject: [PATCH 025/289] drop ppc64p7 kernel options, not supported in F-26+ and never in dnf (NFC) --- .../powerpc64p7/CONFIG_CPU_LITTLE_ENDIAN | 1 - .../powerpc/powerpc64p7/CONFIG_GENERIC_PHY | 1 - baseconfig/powerpc/powerpc64p7/CONFIG_I2C_MUX | 1 - .../powerpc/powerpc64p7/CONFIG_MFD_CORE | 1 - .../powerpc/powerpc64p7/CONFIG_POWER7_CPU | 1 - .../powerpc/powerpc64p7/CONFIG_SERIAL_CORE | 1 - build_configs.sh | 2 - config_generation | 3 +- filter-ppc64p7.sh | 14 - kernel-ppc64p7-debug.config | 5795 ----------------- kernel-ppc64p7.config | 5771 ---------------- kernel.spec | 7 +- 12 files changed, 3 insertions(+), 11595 deletions(-) delete mode 100644 baseconfig/powerpc/powerpc64p7/CONFIG_CPU_LITTLE_ENDIAN delete mode 100644 baseconfig/powerpc/powerpc64p7/CONFIG_GENERIC_PHY delete mode 100644 baseconfig/powerpc/powerpc64p7/CONFIG_I2C_MUX delete mode 100644 baseconfig/powerpc/powerpc64p7/CONFIG_MFD_CORE delete mode 100644 baseconfig/powerpc/powerpc64p7/CONFIG_POWER7_CPU delete mode 100644 baseconfig/powerpc/powerpc64p7/CONFIG_SERIAL_CORE delete mode 100644 filter-ppc64p7.sh delete mode 100644 kernel-ppc64p7-debug.config delete mode 100644 kernel-ppc64p7.config diff --git a/baseconfig/powerpc/powerpc64p7/CONFIG_CPU_LITTLE_ENDIAN b/baseconfig/powerpc/powerpc64p7/CONFIG_CPU_LITTLE_ENDIAN deleted file mode 100644 index 57d623ff2..000000000 --- a/baseconfig/powerpc/powerpc64p7/CONFIG_CPU_LITTLE_ENDIAN +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_CPU_LITTLE_ENDIAN is not set diff --git a/baseconfig/powerpc/powerpc64p7/CONFIG_GENERIC_PHY b/baseconfig/powerpc/powerpc64p7/CONFIG_GENERIC_PHY deleted file mode 100644 index 40cd1a4f5..000000000 --- a/baseconfig/powerpc/powerpc64p7/CONFIG_GENERIC_PHY +++ /dev/null @@ -1 +0,0 @@ -CONFIG_GENERIC_PHY=y diff --git a/baseconfig/powerpc/powerpc64p7/CONFIG_I2C_MUX b/baseconfig/powerpc/powerpc64p7/CONFIG_I2C_MUX deleted file mode 100644 index 6982ed98a..000000000 --- a/baseconfig/powerpc/powerpc64p7/CONFIG_I2C_MUX +++ /dev/null @@ -1 +0,0 @@ -CONFIG_I2C_MUX=m diff --git a/baseconfig/powerpc/powerpc64p7/CONFIG_MFD_CORE b/baseconfig/powerpc/powerpc64p7/CONFIG_MFD_CORE deleted file mode 100644 index c8855e8a0..000000000 --- a/baseconfig/powerpc/powerpc64p7/CONFIG_MFD_CORE +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MFD_CORE=m diff --git a/baseconfig/powerpc/powerpc64p7/CONFIG_POWER7_CPU b/baseconfig/powerpc/powerpc64p7/CONFIG_POWER7_CPU deleted file mode 100644 index 40eb65bc2..000000000 --- a/baseconfig/powerpc/powerpc64p7/CONFIG_POWER7_CPU +++ /dev/null @@ -1 +0,0 @@ -CONFIG_POWER7_CPU=y diff --git a/baseconfig/powerpc/powerpc64p7/CONFIG_SERIAL_CORE b/baseconfig/powerpc/powerpc64p7/CONFIG_SERIAL_CORE deleted file mode 100644 index 32ecde504..000000000 --- a/baseconfig/powerpc/powerpc64p7/CONFIG_SERIAL_CORE +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SERIAL_CORE=m diff --git a/build_configs.sh b/build_configs.sh index 55fb89d01..140511f19 100755 --- a/build_configs.sh +++ b/build_configs.sh @@ -46,8 +46,6 @@ function merge_configs() echo "# powerpc" > $name elif [ "x$arch" == "xppc64le" ]; then echo "# powerpc" > $name - elif [ "x$arch" == "xppc64p7" ]; then - echo "# powerpc" > $name elif [ "x$arch" == "xs390x" ]; then echo "# s390" > $name elif [ "x$arch" == "xarmv7hl" ]; then diff --git a/config_generation b/config_generation index 0a234f27e..6708b1022 100644 --- a/config_generation +++ b/config_generation @@ -20,8 +20,7 @@ ppc64-debug=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64:debugconf # ppc64le ppc64le=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64le ppc64le-debug=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64le:debugconfig -ppc64p7=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64p7 -ppc64p7-debug=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64p7:debugconfig + # s390x s390x=baseconfig:baseconfig-s390x s390x-debug=baseconfig:baseconfig-s390x:debugconfig diff --git a/filter-ppc64p7.sh b/filter-ppc64p7.sh deleted file mode 100644 index 0d42b4741..000000000 --- a/filter-ppc64p7.sh +++ /dev/null @@ -1,14 +0,0 @@ -#! /bin/bash - -# This is the ppc64p7 override file for the core/drivers package split. The -# module directories listed here and in the generic list in filter-modules.sh -# will be moved to the resulting kernel-modules package for this arch. -# Anything not listed in those files will be in the kernel-core package. -# -# Please review the default list in filter-modules.sh before making -# modifications to the overrides below. If something should be removed across -# all arches, remove it in the default instead of per-arch. - -driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1" - -singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr" diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config deleted file mode 100644 index 57dd5e075..000000000 --- a/kernel-ppc64p7-debug.config +++ /dev/null @@ -1,5795 +0,0 @@ -# powerpc -# CONFIG_3C515 is not set -# CONFIG_60XX_WDT is not set -CONFIG_6LOWPAN_DEBUGFS=y -CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m -CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m -CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m -CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m -CONFIG_6LOWPAN_GHC_ICMPV6=m -CONFIG_6LOWPAN_GHC_UDP=m -CONFIG_6LOWPAN=m -CONFIG_6LOWPAN_NHC_DEST=m -CONFIG_6LOWPAN_NHC_FRAGMENT=m -CONFIG_6LOWPAN_NHC_HOP=m -CONFIG_6LOWPAN_NHC_IPV6=m -CONFIG_6LOWPAN_NHC=m -CONFIG_6LOWPAN_NHC_MOBILITY=m -CONFIG_6LOWPAN_NHC_ROUTING=m -CONFIG_6LOWPAN_NHC_UDP=m -CONFIG_6PACK=m -CONFIG_8139CP=m -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_8139TOO_8129=y -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8723AU_AP_MODE is not set -# CONFIG_8723AU_BT_COEXIST is not set -CONFIG_9P_FSCACHE=y -CONFIG_9P_FS=m -CONFIG_9P_FS_POSIX_ACL=y -CONFIG_9P_FS_SECURITY=y -CONFIG_A11Y_BRAILLE_CONSOLE=y -# CONFIG_AB3100_CORE is not set -# CONFIG_AB3100_OTP is not set -CONFIG_ABP060MG=m -# CONFIG_ABX500_CORE is not set -CONFIG_ACCESSIBILITY=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -# CONFIG_ACORN_PARTITION is not set -CONFIG_ACPI_ALS=m -# CONFIG_ACPI_DEBUGGER is not set -CONFIG_ACPI_DEBUG=y -# CONFIG_ACPI_NFIT is not set -CONFIG_ACPI_PCI_SLOT=y -# CONFIG_ACQUIRE_WDT is not set -CONFIG_ACT200L_DONGLE=m -CONFIG_ACTISYS_DONGLE=m -# CONFIG_AD2S1200 is not set -# CONFIG_AD2S1210 is not set -# CONFIG_AD2S90 is not set -# CONFIG_AD5064 is not set -# CONFIG_AD525X_DPOT is not set -# CONFIG_AD5360 is not set -# CONFIG_AD5380 is not set -# CONFIG_AD5421 is not set -# CONFIG_AD5446 is not set -# CONFIG_AD5449 is not set -# CONFIG_AD5504 is not set -# CONFIG_AD5592R is not set -# CONFIG_AD5593R is not set -# CONFIG_AD5624R_SPI is not set -# CONFIG_AD5686 is not set -# CONFIG_AD5755 is not set -# CONFIG_AD5761 is not set -# CONFIG_AD5764 is not set -# CONFIG_AD5791 is not set -# CONFIG_AD5933 is not set -# CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7266 is not set -# CONFIG_AD7280 is not set -# CONFIG_AD7291 is not set -# CONFIG_AD7298 is not set -# CONFIG_AD7303 is not set -# CONFIG_AD7476 is not set -# CONFIG_AD7606 is not set -# CONFIG_AD7746 is not set -CONFIG_AD7766=m -# CONFIG_AD7780 is not set -# CONFIG_AD7791 is not set -# CONFIG_AD7793 is not set -# CONFIG_AD7816 is not set -# CONFIG_AD7887 is not set -# CONFIG_AD7923 is not set -# CONFIG_AD799X is not set -# CONFIG_AD8366 is not set -# CONFIG_AD8801 is not set -# CONFIG_AD9523 is not set -# CONFIG_AD9832 is not set -# CONFIG_AD9834 is not set -CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADE7753 is not set -# CONFIG_ADE7754 is not set -# CONFIG_ADE7758 is not set -# CONFIG_ADE7759 is not set -# CONFIG_ADE7854 is not set -# CONFIG_ADF4350 is not set -# CONFIG_ADFS_FS is not set -# CONFIG_ADIS16060 is not set -# CONFIG_ADIS16080 is not set -# CONFIG_ADIS16130 is not set -# CONFIG_ADIS16136 is not set -# CONFIG_ADIS16201 is not set -# CONFIG_ADIS16203 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADIS16240 is not set -# CONFIG_ADIS16260 is not set -# CONFIG_ADIS16400 is not set -# CONFIG_ADIS16480 is not set -# CONFIG_ADJD_S311 is not set -# CONFIG_ADM8211 is not set -# CONFIG_ADT7316 is not set -# CONFIG_ADVANTECH_WDT is not set -# CONFIG_ADXL345_I2C is not set -# CONFIG_ADXL345_SPI is not set -# CONFIG_ADXRS450 is not set -# CONFIG_AFE4403 is not set -# CONFIG_AFE4404 is not set -CONFIG_AFFS_FS=m -# CONFIG_AF_KCM is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_AFS_FS is not set -# CONFIG_AGP is not set -# CONFIG_AHCI_CEVA is not set -# CONFIG_AHCI_QORIQ is not set -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set -CONFIG_AIC79XX_CMDS_PER_DEVICE=4 -# CONFIG_AIC79XX_DEBUG_ENABLE is not set -CONFIG_AIC79XX_DEBUG_MASK=0 -# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set -CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIRO_CS is not set -# CONFIG_AIRO is not set -CONFIG_AIX_PARTITION=y -# CONFIG_AK09911 is not set -# CONFIG_AK8974 is not set -# CONFIG_AK8975 is not set -# CONFIG_AL3320A is not set -CONFIG_ALI_FIR=m -CONFIG_ALIM1535_WDT=m -CONFIG_ALIM7101_WDT=m -# CONFIG_ALTERA_MBOX is not set -CONFIG_ALTERA_STAPL=m -CONFIG_ALTERA_TSE=m -CONFIG_ALTIVEC=y -CONFIG_ALX=m -# CONFIG_AM2315 is not set -CONFIG_AMD8111_ETH=m -CONFIG_AMD_PHY=m -# CONFIG_AMD_XGBE_DCB is not set -# CONFIG_AMD_XGBE is not set -# CONFIG_AMIGAONE is not set -CONFIG_AMIGA_PARTITION=y -# CONFIG_ANDROID is not set -# CONFIG_APDS9300 is not set -CONFIG_APDS9802ALS=m -# CONFIG_APDS9960 is not set -CONFIG_APM_POWER=m -# CONFIG_APPLE_PROPERTIES is not set -# CONFIG_APPLICOM is not set -CONFIG_AQUANTIA_PHY=m -CONFIG_AR5523=m -# CONFIG_ARCNET is not set -CONFIG_ARM64_ERRATUM_858921=y -CONFIG_ARM64_PTDUMP=y -# CONFIG_AS3935 is not set -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYNC_RAID6_TEST=m -CONFIG_ASYNC_TX_DMA=y -CONFIG_AT76C50X_USB=m -CONFIG_AT803X_PHY=m -CONFIG_ATA_BMDMA=y -CONFIG_ATA_GENERIC=m -CONFIG_ATALK=m -CONFIG_ATA_OVER_ETH=m -CONFIG_ATA_PIIX=y -# CONFIG_ATARI_PARTITION is not set -CONFIG_ATA_SFF=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA=y -# CONFIG_ATH10K_AHB is not set -CONFIG_ATH10K_DEBUGFS=y -# CONFIG_ATH10K_DEBUG is not set -CONFIG_ATH10K=m -CONFIG_ATH10K_PCI=m -CONFIG_ATH10K_SDIO=m -# CONFIG_ATH10K_TRACING is not set -CONFIG_ATH5K_DEBUG=y -CONFIG_ATH5K=m -# CONFIG_ATH5K_TRACER is not set -CONFIG_ATH6KL_DEBUG=y -CONFIG_ATH6KL=m -CONFIG_ATH6KL_SDIO=m -# CONFIG_ATH6KL_TRACING is not set -CONFIG_ATH6KL_USB=m -CONFIG_ATH9K_AHB=y -CONFIG_ATH9K_BTCOEX_SUPPORT=y -# CONFIG_ATH9K_CHANNEL_CONTEXT is not set -CONFIG_ATH9K_DEBUGFS=y -# CONFIG_ATH9K_DEBUG is not set -# CONFIG_ATH9K_DYNACK is not set -# CONFIG_ATH9K_HTC_DEBUGFS is not set -CONFIG_ATH9K_HTC=m -# CONFIG_ATH9K_HWRNG is not set -CONFIG_ATH9K=m -CONFIG_ATH9K_PCI=y -# CONFIG_ATH9K_STATION_STATISTICS is not set -# CONFIG_ATH9K_WOW is not set -CONFIG_ATH_COMMON=m -CONFIG_ATH_DEBUG=y -# CONFIG_ATH_TRACEPOINTS is not set -CONFIG_ATL1C=m -CONFIG_ATL1E=m -CONFIG_ATL1=m -CONFIG_ATL2=m -# CONFIG_ATLAS_PH_SENSOR is not set -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -# CONFIG_ATM_AMBASSADOR is not set -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_ATM_BR2684=m -CONFIG_ATM_CLIP=m -# CONFIG_ATM_CLIP_NO_ICMP is not set -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -# CONFIG_ATMEL is not set -# CONFIG_ATM_ENI_DEBUG is not set -CONFIG_ATM_ENI=m -# CONFIG_ATM_ENI_TUNE_BURST is not set -# CONFIG_ATM_FIRESTREAM is not set -CONFIG_ATM_FORE200E_DEBUG=0 -# CONFIG_ATM_FORE200E is not set -CONFIG_ATM_FORE200E_TX_RETRY=16 -# CONFIG_ATM_FORE200E_USE_TASKLET is not set -CONFIG_ATM_HE=m -# CONFIG_ATM_HE_USE_SUNI is not set -# CONFIG_ATM_HORIZON_DEBUG is not set -# CONFIG_ATM_HORIZON is not set -# CONFIG_ATM_IA_DEBUG is not set -# CONFIG_ATM_IA is not set -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252 is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -# CONFIG_ATM_LANAI is not set -CONFIG_ATM_LANE=m -CONFIG_ATM=m -# CONFIG_ATM_MPOA is not set -CONFIG_ATM_NICSTAR=m -# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set -# CONFIG_ATM_NICSTAR_USE_SUNI is not set -CONFIG_ATM_SOLOS=m -CONFIG_ATM_TCP=m -# CONFIG_ATM_ZATM_DEBUG is not set -# CONFIG_ATM_ZATM is not set -CONFIG_ATOMIC64_SELFTEST=y -CONFIG_ATP=m -CONFIG_AUDITSYSCALL=y -CONFIG_AUDIT=y -CONFIG_AUTOFS4_FS=y -CONFIG_AUXDISPLAY=y -# CONFIG_AVERAGE is not set -CONFIG_AX25_DAMA_SLAVE=y -CONFIG_AX25=m -# CONFIG_AXON_RAM is not set -CONFIG_B43_BCMA_PIO=y -CONFIG_B43_BCMA=y -CONFIG_B43_DEBUG=y -CONFIG_B43LEGACY_DEBUG=y -CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y -# CONFIG_B43LEGACY_DMA_MODE is not set -CONFIG_B43LEGACY_DMA=y -CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_PIO_MODE is not set -CONFIG_B43LEGACY_PIO=y -CONFIG_B43=m -CONFIG_B43_PHY_G=y -CONFIG_B43_PHY_HT=y -CONFIG_B43_PHY_LP=y -CONFIG_B43_PHY_N=y -CONFIG_B43_SDIO=y -CONFIG_B44=m -CONFIG_B44_PCI=y -CONFIG_B53=m -CONFIG_B53_MDIO_DRIVER=m -CONFIG_B53_MMAP_DRIVER=m -CONFIG_B53_SPI_DRIVER=m -CONFIG_B53_SRAB_DRIVER=m -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -CONFIG_BACKLIGHT_ARCXCNN=m -# CONFIG_BACKLIGHT_BD6107 is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_GENERIC is not set -# CONFIG_BACKLIGHT_GPIO is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -# CONFIG_BACKLIGHT_LM3630A is not set -# CONFIG_BACKLIGHT_LM3630 is not set -# CONFIG_BACKLIGHT_LM3639 is not set -CONFIG_BACKLIGHT_LP855X=m -# CONFIG_BACKLIGHT_LV5207LP is not set -# CONFIG_BACKLIGHT_PM8941_WLED is not set -CONFIG_BACKLIGHT_PWM=m -# CONFIG_BACKLIGHT_SAHARA is not set -CONFIG_BACKLIGHT_WM831X=m -# CONFIG_BACKTRACE_SELF_TEST is not set -CONFIG_BALLOON_COMPACTION=y -CONFIG_BATMAN_ADV_BATMAN_V=y -CONFIG_BATMAN_ADV_BLA=y -CONFIG_BATMAN_ADV_DAT=y -# CONFIG_BATMAN_ADV_DEBUGFS is not set -# CONFIG_BATMAN_ADV_DEBUG is not set -CONFIG_BATMAN_ADV=m -CONFIG_BATMAN_ADV_MCAST=y -CONFIG_BATMAN_ADV_NC=y -# CONFIG_BATTERY_BQ27XXX is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2781 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_GAUGE_LTC2941 is not set -# CONFIG_BATTERY_LEGO_EV3 is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_BATTERY_SBS is not set -CONFIG_BAYCOM_EPP=m -CONFIG_BAYCOM_PAR=m -CONFIG_BAYCOM_SER_FDX=m -CONFIG_BAYCOM_SER_HDX=m -# CONFIG_BCACHE_CLOSURES_DEBUG is not set -# CONFIG_BCACHE_DEBUG is not set -CONFIG_BCACHE=m -# CONFIG_BCM2835_VCHIQ is not set -CONFIG_BCM63XX_PHY=m -# CONFIG_BCM7038_WDT is not set -CONFIG_BCM7XXX_PHY=m -CONFIG_BCM87XX_PHY=m -CONFIG_BCMA_BLOCKIO=y -# CONFIG_BCMA_DEBUG is not set -CONFIG_BCMA_DRIVER_GMAC_CMN=y -CONFIG_BCMA_DRIVER_GPIO=y -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -CONFIG_BCMA_HOST_PCI=y -# CONFIG_BCMA_HOST_SOC is not set -CONFIG_BCMA=m -# CONFIG_BCM_FLEXRM_MBOX is not set -CONFIG_BCMGENET=m -# CONFIG_BCM_KONA_USB2_PHY is not set -CONFIG_BE2ISCSI=m -# CONFIG_BE2NET_HWMON is not set -CONFIG_BE2NET=m -# CONFIG_BEFS_DEBUG is not set -CONFIG_BEFS_FS=m -CONFIG_BFQ_GROUP_IOSCHED=y -# CONFIG_BFS_FS is not set -CONFIG_BH1750=m -# CONFIG_BH1780 is not set -CONFIG_BIG_KEYS=y -# CONFIG_BINFMT_AOUT is not set -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_FLAT is not set -CONFIG_BINFMT_MISC=m -CONFIG_BINFMT_SCRIPT=y -CONFIG_BLK_CGROUP=y -# CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m -CONFIG_BLK_DEBUG_FS=y -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_BLK_DEV_BSGLIB=y -CONFIG_BLK_DEV_BSG=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -CONFIG_BLK_DEV_DAC960=m -CONFIG_BLK_DEV_DM=y -CONFIG_BLK_DEV_DRBD=m -CONFIG_BLK_DEV_FD=m -CONFIG_BLK_DEV_INITRD=y -CONFIG_BLK_DEV_INTEGRITY=y -CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_BLK_DEV_IT8172=m -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 -CONFIG_BLK_DEV_MD=y -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_NULL_BLK=m -CONFIG_BLK_DEV_NVME=m -# CONFIG_BLK_DEV_NVME_SCSI is not set -CONFIG_BLK_DEV_OSD=m -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_BLK_DEV_PLATFORM is not set -CONFIG_BLK_DEV_PMEM=m -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_DAX=y -CONFIG_BLK_DEV_RAM=m -CONFIG_BLK_DEV_RAM_SIZE=16384 -CONFIG_BLK_DEV_RBD=m -CONFIG_BLK_DEV_RSXX=m -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_DEV_SKD=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_THROTTLING_LOW is not set -CONFIG_BLK_DEV_THROTTLING=y -CONFIG_BLK_DEV_UMEM=m -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_ZONED=y -CONFIG_BLK_SED_OPAL=y -CONFIG_BLK_WBT_MQ=y -# CONFIG_BLK_WBT_SQ is not set -CONFIG_BLK_WBT=y -# CONFIG_BMA180 is not set -# CONFIG_BMA220 is not set -CONFIG_BMC150_ACCEL=m -# CONFIG_BMC150_MAGN_I2C is not set -# CONFIG_BMC150_MAGN is not set -# CONFIG_BMC150_MAGN_SPI is not set -# CONFIG_BMG160 is not set -# CONFIG_BMI160_I2C is not set -# CONFIG_BMI160_SPI is not set -CONFIG_BMP280=m -CONFIG_BNA=m -CONFIG_BNX2=m -CONFIG_BNX2X=m -CONFIG_BNX2X_SRIOV=y -CONFIG_BNXT_DCB=y -CONFIG_BNXT=m -CONFIG_BNXT_SRIOV=y -CONFIG_BONDING=m -# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set -# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOT_PRINTK_DELAY=y -CONFIG_BOOTX_TEXT=y -CONFIG_BOUNCE=y -CONFIG_BPF_JIT=y -CONFIG_BPF_SYSCALL=y -CONFIG_BPQETHER=m -# CONFIG_BRCMDBG is not set -CONFIG_BRCMFMAC=m -CONFIG_BRCMFMAC_PCIE=y -CONFIG_BRCMFMAC_SDIO=y -CONFIG_BRCMFMAC_USB=y -CONFIG_BRCMSMAC=m -# CONFIG_BRCMSTB_GISB_ARB is not set -# CONFIG_BRCM_TRACING is not set -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_NFLOG=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_IGMP_SNOOPING=y -CONFIG_BRIDGE=m -CONFIG_BRIDGE_NETFILTER=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_VLAN_FILTERING=y -CONFIG_BROADCOM_PHY=m -CONFIG_BSD_DISKLABEL=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BT_6LOWPAN=m -CONFIG_BT_ATH3K=m -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_BREDR=y -CONFIG_BT_CMTP=m -# CONFIG_BT_DEBUGFS is not set -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIBTUSB_BCM=y -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTUSB_RTL=y -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIUART_3WIRE=y -CONFIG_BT_HCIUART_AG6XX=y -CONFIG_BT_HCIUART_ATH3K=y -CONFIG_BT_HCIUART_BCM=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_INTEL=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_MRVL=y -CONFIG_BT_HCIUART_NOKIA=m -CONFIG_BT_HCIUART_QCA=y -CONFIG_BT_HCIUART_SERDEV=y -CONFIG_BT_HCIVHCI=m -CONFIG_BT_HIDP=m -CONFIG_BT_HS=y -CONFIG_BT_LEDS=y -CONFIG_BT_LE=y -CONFIG_BT=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_BT_QCA=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -# CONFIG_BTRFS_ASSERT is not set -# CONFIG_BTRFS_DEBUG is not set -# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set -CONFIG_BTRFS_FS=m -CONFIG_BTRFS_FS_POSIX_ACL=y -# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -# CONFIG_BT_SELFTEST is not set -# CONFIG_BTT is not set -CONFIG_BT_WILINK=m -CONFIG_BUG_ON_DATA_CORRUPTION=y -CONFIG_BUILD_DOCSRC=y -# CONFIG_C2PORT is not set -# CONFIG_CACHEFILES_DEBUG is not set -# CONFIG_CACHEFILES_HISTOGRAM is not set -CONFIG_CACHEFILES=m -# CONFIG_CADENCE_WATCHDOG is not set -# CONFIG_CAIF is not set -CONFIG_CAN_8DEV_USB=m -CONFIG_CAN_BCM=m -CONFIG_CAN_CALC_BITTIMING=y -# CONFIG_CAN_CC770_ISA is not set -CONFIG_CAN_CC770=m -CONFIG_CAN_CC770_PLATFORM=m -CONFIG_CAN_C_CAN=m -CONFIG_CAN_C_CAN_PCI=m -CONFIG_CAN_C_CAN_PLATFORM=m -CONFIG_CAN_DEBUG_DEVICES=y -CONFIG_CAN_DEV=m -CONFIG_CAN_EMS_PCI=m -# CONFIG_CAN_EMS_PCMCIA is not set -CONFIG_CAN_EMS_USB=m -CONFIG_CAN_ESD_USB2=m -# CONFIG_CAN_FLEXCAN is not set -# CONFIG_CAN_GRCAN is not set -CONFIG_CAN_GS_USB=m -CONFIG_CAN_GW=m -CONFIG_CAN_HI311X=m -CONFIG_CAN_IFI_CANFD=m -CONFIG_CAN_KVASER_PCI=m -CONFIG_CAN_KVASER_USB=m -CONFIG_CAN_LEDS=y -CONFIG_CAN=m -CONFIG_CAN_M_CAN=m -CONFIG_CAN_MCBA_USB=m -# CONFIG_CAN_MCP251X is not set -# CONFIG_CAN_MPC5XXX is not set -# CONFIG_CAN_MSCAN is not set -CONFIG_CAN_PEAK_PCIEC=y -CONFIG_CAN_PEAK_PCIEFD=m -CONFIG_CAN_PEAK_PCI=m -# CONFIG_CAN_PEAK_PCMCIA is not set -CONFIG_CAN_PEAK_USB=m -CONFIG_CAN_PLX_PCI=m -CONFIG_CAN_RAW=m -# CONFIG_CAN_SJA1000_ISA is not set -CONFIG_CAN_SJA1000=m -CONFIG_CAN_SJA1000_PLATFORM=m -CONFIG_CAN_SLCAN=m -# CONFIG_CAN_SOFTING_CS is not set -CONFIG_CAN_SOFTING=m -# CONFIG_CAN_TSCAN1 is not set -CONFIG_CAN_VCAN=m -CONFIG_CAN_VXCAN=m -# CONFIG_CAN_XILINXCAN is not set -CONFIG_CAPI_AVM=y -CONFIG_CAPI_EICON=y -# CONFIG_CAPI_TRACE is not set -CONFIG_CARDBUS=y -CONFIG_CARDMAN_4000=m -CONFIG_CARDMAN_4040=m -CONFIG_CARL9170_DEBUGFS=y -# CONFIG_CARL9170_HWRNG is not set -CONFIG_CARL9170_LEDS=y -CONFIG_CARL9170=m -CONFIG_CASSINI=m -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -# CONFIG_CC10001_ADC is not set -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -CONFIG_CDROM_PKTCDVD=m -# CONFIG_CDROM_PKTCDVD_WCACHE is not set -CONFIG_CEC_PLATFORM_DRIVERS=y -CONFIG_CEPH_FSCACHE=y -CONFIG_CEPH_FS=m -CONFIG_CEPH_FS_POSIX_ACL=y -CONFIG_CEPH_LIB=m -CONFIG_CEPH_LIB_PRETTYDEBUG=y -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set -CONFIG_CFAG12864B=m -CONFIG_CFAG12864B_RATE=20 -CONFIG_CFG80211_CRDA_SUPPORT=y -CONFIG_CFG80211_DEBUGFS=y -CONFIG_CFG80211_DEFAULT_PS=y -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -CONFIG_CFG80211=m -CONFIG_CFG80211_WEXT=y -CONFIG_CFQ_GROUP_IOSCHED=y -CONFIG_CFS_BANDWIDTH=y -CONFIG_CGROUP_BPF=y -CONFIG_CGROUP_CPUACCT=y -# CONFIG_CGROUP_DEBUG is not set -CONFIG_CGROUP_DEVICE=y -CONFIG_CGROUP_FREEZER=y -CONFIG_CGROUP_HUGETLB=y -CONFIG_CGROUP_NET_CLASSID=y -CONFIG_CGROUP_NET_PRIO=y -CONFIG_CGROUP_PERF=y -CONFIG_CGROUP_PIDS=y -# CONFIG_CGROUP_RDMA is not set -CONFIG_CGROUP_SCHED=y -CONFIG_CGROUPS=y -# CONFIG_CHARGER_BQ2415X is not set -# CONFIG_CHARGER_BQ24190 is not set -# CONFIG_CHARGER_BQ24257 is not set -# CONFIG_CHARGER_BQ24735 is not set -# CONFIG_CHARGER_BQ25890 is not set -# CONFIG_CHARGER_DETECTOR_MAX14656 is not set -# CONFIG_CHARGER_GPIO is not set -# CONFIG_CHARGER_ISP1704 is not set -# CONFIG_CHARGER_LP8727 is not set -# CONFIG_CHARGER_LTC3651 is not set -# CONFIG_CHARGER_MAX8903 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_RT9455 is not set -# CONFIG_CHARGER_SBS is not set -CONFIG_CHARGER_SMB347=m -# CONFIG_CHECKPOINT_RESTORE is not set -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T3=m -CONFIG_CHELSIO_T4_DCB=y -# CONFIG_CHELSIO_T4_FCOE is not set -CONFIG_CHELSIO_T4=m -CONFIG_CHELSIO_T4VF=m -CONFIG_CHR_DEV_OSST=m -CONFIG_CHR_DEV_SCH=m -CONFIG_CHR_DEV_SG=y -CONFIG_CHR_DEV_ST=m -CONFIG_CHROME_PLATFORMS=y -CONFIG_CICADA_PHY=m -CONFIG_CIFS_ACL=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set -CONFIG_CIFS_DEBUG=y -CONFIG_CIFS_DFS_UPCALL=y -CONFIG_CIFS_FSCACHE=y -CONFIG_CIFS=m -CONFIG_CIFS_NFSD_EXPORT=y -CONFIG_CIFS_POSIX=y -CONFIG_CIFS_SMB2=y -# CONFIG_CIFS_SMB311 is not set -# CONFIG_CIFS_STATS2 is not set -CONFIG_CIFS_STATS=y -CONFIG_CIFS_UPCALL=y -CONFIG_CIFS_WEAK_PW_HASH=y -CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y -CONFIG_CLEANCACHE=y -# CONFIG_CLK_QORIQ is not set -CONFIG_CLS_U32_MARK=y -CONFIG_CLS_U32_PERF=y -CONFIG_CM32181=m -# CONFIG_CM3232 is not set -# CONFIG_CM3323 is not set -CONFIG_CM3605=m -# CONFIG_CM36651 is not set -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUGFS is not set -# CONFIG_CMA_DEBUG is not set -CONFIG_CMA=y -# CONFIG_CMDLINE_BOOL is not set -# CONFIG_CMDLINE_PARTITION is not set -CONFIG_CMM=y -CONFIG_CNIC=m -CONFIG_CODA_FS=m -# CONFIG_CODE_PATCHING_SELFTEST is not set -# CONFIG_COMEDI 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_COMMON_CLK_PWM is not set -# CONFIG_COMMON_CLK_SI514 is not set -# CONFIG_COMMON_CLK_SI5351 is not set -# CONFIG_COMMON_CLK_SI570 is not set -# CONFIG_COMMON_CLK_VC5 is not set -# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set -# CONFIG_COMMON_RESET_HI3660 is not set -CONFIG_COMPACTION=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_COMPILE_TEST is not set -CONFIG_CONFIGFS_FS=y -CONFIG_CONNECTOR=y -# CONFIG_CONSISTENT_SIZE_BOOL is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONTEXT_SWITCH_TRACER=y -CONFIG_CORDIC=m -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y -CONFIG_CORTINA_PHY=m -# CONFIG_CPU5_WDT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPUFREQ_DT is not set -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_CPU_IDLE_GOV_LADDER is not set -CONFIG_CPU_IDLE=y -# CONFIG_CPU_LITTLE_ENDIAN is not set -CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPU_NOTIFIER_ERROR_INJECT=m -CONFIG_CPUSETS=y -# CONFIG_CPU_THERMAL is not set -CONFIG_CRAMFS=m -CONFIG_CRASH_DUMP=y -CONFIG_CRASH=m -CONFIG_CRC16=y -# CONFIG_CRC32_SELFTEST is not set -CONFIG_CRC32=y -CONFIG_CRC4=m -CONFIG_CRC7=m -CONFIG_CRC8=m -CONFIG_CRC_CCITT=y -CONFIG_CRC_ITU_T=m -CONFIG_CRC_T10DIF=y -CONFIG_CROS_KBD_LED_BACKLIGHT=m -CONFIG_CROSS_COMPILE="" -CONFIG_CROSS_MEMORY_ATTACH=y -CONFIG_CRYPTO_842=m -CONFIG_CRYPTO_AES_TI=m -CONFIG_CRYPTO_AES=y -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_AUTHENC=m -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_CHACHA20=m -CONFIG_CRYPTO_CHACHA20POLY1305=m -CONFIG_CRYPTO_CMAC=m -CONFIG_CRYPTO_CRC32C_VPMSUM=m -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRC32=m -CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m -# CONFIG_CRYPTO_CRYPTD is not set -CONFIG_CRYPTO_CTR=y -CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_DES=m -# CONFIG_CRYPTO_DEV_CCREE is not set -CONFIG_CRYPTO_DEV_CHELSIO=m -# CONFIG_CRYPTO_DEV_FSL_CAAM is not set -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y -CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m -CONFIG_CRYPTO_DEV_NX_COMPRESS=m -CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m -CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m -CONFIG_CRYPTO_DEV_NX_ENCRYPT=m -CONFIG_CRYPTO_DEV_NX=y -CONFIG_CRYPTO_DEV_VIRTIO=m -CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m -CONFIG_CRYPTO_DEV_VMX=y -CONFIG_CRYPTO_DH=y -CONFIG_CRYPTO_DRBG_CTR=y -CONFIG_CRYPTO_DRBG_HASH=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_ECDH=m -CONFIG_CRYPTO_ECHAINIV=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_KEYWRAP=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_LZ4HC=m -CONFIG_CRYPTO_LZ4=m -CONFIG_CRYPTO_LZO=y -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set -CONFIG_CRYPTO_MANAGER=y -# CONFIG_CRYPTO_MCRYPTD is not set -CONFIG_CRYPTO_MD4=m -# CONFIG_CRYPTO_MD5_PPC is not set -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_PCRYPT=m -CONFIG_CRYPTO_POLY1305=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_RSA=y -CONFIG_CRYPTO_SALSA20_586=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SERPENT=m -# CONFIG_CRYPTO_SHA1_PPC is not set -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA3=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_SIMD=y -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_USER_API_AEAD=y -CONFIG_CRYPTO_USER_API_HASH=y -CONFIG_CRYPTO_USER_API_RNG=y -CONFIG_CRYPTO_USER_API_SKCIPHER=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_VMAC=m -# CONFIG_CRYPTO_VPMSUM_TESTER is not set -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_XTS=y -CONFIG_CRYPTO=y -CONFIG_CUSE=m -CONFIG_CW1200=m -CONFIG_CW1200_WLAN_SDIO=m -CONFIG_CW1200_WLAN_SPI=m -# CONFIG_CX_ECAT is not set -CONFIG_CXLFLASH=m -CONFIG_CXL=m -CONFIG_CYCLADES=m -# CONFIG_CYZ_INTR is not set -CONFIG_DA280=m -CONFIG_DA311=m -CONFIG_DAVICOM_PHY=m -CONFIG_DCB=y -# CONFIG_DDR is not set -CONFIG_DE2104X_DSL=0 -CONFIG_DE2104X=m -CONFIG_DE4X5=m -CONFIG_DE_AOC=y -CONFIG_DEBUG_ATOMIC_SLEEP=y -CONFIG_DEBUG_BLK_CGROUP=y -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -CONFIG_DEBUG_BOOT_PARAMS=y -CONFIG_DEBUG_CREDENTIALS=y -CONFIG_DEBUG_DEVRES=y -# CONFIG_DEBUG_DRIVER is not set -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y -CONFIG_DEBUG_FS=y -CONFIG_DEBUGGER=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_DEBUG_HIGHMEM=y -# CONFIG_DEBUG_HOTPLUG_CPU0 is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_REDUCED is not set -# CONFIG_DEBUG_INFO_SPLIT is not set -CONFIG_DEBUG_INFO_VTA=y -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096 -# CONFIG_DEBUG_KMEMLEAK_TEST is not set -CONFIG_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_KOBJECT_RELEASE is not set -CONFIG_DEBUG_LIST=y -CONFIG_DEBUG_LOCK_ALLOC=y -# CONFIG_DEBUG_LOCKDEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_NOTIFIERS=y -CONFIG_DEBUG_NX_TEST=m -CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y -CONFIG_DEBUG_OBJECTS_RCU_HEAD=y -# CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_OBJECTS_WORK=y -CONFIG_DEBUG_OBJECTS=y -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_PAGE_REF is not set -CONFIG_DEBUG_PER_CPU_MAPS=y -CONFIG_DEBUG_PERF_USE_VMALLOC=y -CONFIG_DEBUG_PI_LIST=y -# CONFIG_DEBUG_PINCTRL is not set -CONFIG_DEBUG_REFCOUNT=y -CONFIG_DEBUG_RODATA_TEST=y -CONFIG_DEBUG_RT_MUTEXES=y -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_DEBUG_SET_MODULE_RONX=y -CONFIG_DEBUG_SG=y -CONFIG_DEBUG_SHIRQ=y -CONFIG_DEBUG_SLAB=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_DEBUG_STACKOVERFLOW=y -CONFIG_DEBUG_STACK_USAGE=y -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_DEBUG_TIMEKEEPING is not set -# CONFIG_DEBUG_VIRTUAL is not set -CONFIG_DEBUG_VM_PGFLAGS=y -# CONFIG_DEBUG_VM_RB is not set # revisit this if performance isn't horrible -# CONFIG_DEBUG_VM_VMACACHE is not set -CONFIG_DEBUG_VM=y -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DECNET is not set -CONFIG_DEFAULT_CFQ=y -CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set -# CONFIG_DEFXX is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEV_APPLETALK=m -CONFIG_DEV_DAX=m -CONFIG_DEV_DAX_PMEM=m -# CONFIG_DEVFREQ_GOV_PASSIVE is not set -# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set -# CONFIG_DEVFREQ_GOV_POWERSAVE is not set -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m -# CONFIG_DEVFREQ_GOV_USERSPACE is not set -# CONFIG_DEVKMEM is not set -CONFIG_DEVMEM=y -CONFIG_DEVPORT=y -CONFIG_DEVTMPFS_MOUNT=y -CONFIG_DEVTMPFS=y -# CONFIG_DGAP is not set -# CONFIG_DGNC is not set -CONFIG_DHT11=m -CONFIG_DL2K=m -CONFIG_DLM_DEBUG=y -CONFIG_DLM=m -CONFIG_DM9102=m -CONFIG_DMA_API_DEBUG=y -# CONFIG_DMA_CMA is not set -CONFIG_DMADEVICES_DEBUG=y -# CONFIG_DMADEVICES_VDEBUG is not set -CONFIG_DMADEVICES=y -CONFIG_DMA_ENGINE=y -# CONFIG_DMA_FENCE_TRACE is not set -# CONFIG_DMARD06 is not set -# CONFIG_DMARD09 is not set -CONFIG_DMARD10=m -# CONFIG_DMATEST is not set -CONFIG_DM_CACHE_CLEANER=m -CONFIG_DM_CACHE=m -CONFIG_DM_CACHE_SMQ=m -CONFIG_DM_CRYPT=m -CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -CONFIG_DM_DEBUG=y -CONFIG_DM_DELAY=m -# CONFIG_DM_ERA is not set -CONFIG_DM_FLAKEY=m -CONFIG_DM_INTEGRITY=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_LOG_WRITES=m -CONFIG_DM_MIRROR=y -# CONFIG_DM_MQ_DEFAULT is not set -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_RAID=m -CONFIG_DM_SNAPSHOT=y -CONFIG_DM_SWITCH=m -CONFIG_DM_THIN_PROVISIONING=m -CONFIG_DM_UEVENT=y -CONFIG_DM_VERITY_FEC=y -CONFIG_DM_VERITY=m -CONFIG_DM_ZERO=y -CONFIG_DM_ZONED=m -CONFIG_DNET=m -CONFIG_DNOTIFY=y -CONFIG_DNS_RESOLVER=m -CONFIG_DONGLE=y -CONFIG_DP83640_PHY=m -CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m -# CONFIG_DPM_WATCHDOG is not set # revisit this in debug -CONFIG_DPOT_DAC=m -CONFIG_DRAGONRISE_FF=y -CONFIG_DRBD_FAULT_INJECTION=y -CONFIG_DRM_AMD_ACP=y -CONFIG_DRM_AMDGPU_CIK=y -# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set -CONFIG_DRM_AMDGPU=m -# CONFIG_DRM_AMDGPU_SI is not set -CONFIG_DRM_AMDGPU_USERPTR=y -CONFIG_DRM_AMD_POWERPLAY=y -CONFIG_DRM_ANALOGIX_ANX78XX=m -# CONFIG_DRM_ARCPGU is not set -CONFIG_DRM_AST=m -CONFIG_DRM_BOCHS=m -CONFIG_DRM_CIRRUS_QEMU=m -# CONFIG_DRM_DEBUG_MM_SELFTEST is not set -CONFIG_DRM_DP_AUX_CHARDEV=y -# CONFIG_DRM_DUMB_VGA_DAC is not set -# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set -# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -CONFIG_DRM_HISI_HIBMC=m -CONFIG_DRM_I2C_ADV7511_AUDIO=y -CONFIG_DRM_I2C_ADV7511=m -CONFIG_DRM_I2C_ADV7533=y -CONFIG_DRM_I2C_CH7006=m -CONFIG_DRM_I2C_NXP_TDA998X=m -CONFIG_DRM_I2C_SIL164=m -# CONFIG_DRM_LEGACY is not set -CONFIG_DRM_LOAD_EDID_FIRMWARE=y -# CONFIG_DRM_LVDS_ENCODER is not set -CONFIG_DRM=m -# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set -CONFIG_DRM_MGAG200=m -# CONFIG_DRM_MGA is not set -# CONFIG_DRM_MXSFB is not set -CONFIG_DRM_NOUVEAU_BACKLIGHT=y -CONFIG_DRM_NOUVEAU=m -# CONFIG_DRM_NXP_PTN3460 is not set -# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set -# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set -# CONFIG_DRM_PANEL_LG_LG4573 is not set -# CONFIG_DRM_PANEL_LVDS is not set -# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set -# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set -# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set -# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set -# CONFIG_DRM_PANEL_SIMPLE is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set -CONFIG_DRM_PANEL=y -# CONFIG_DRM_PARADE_PS8622 is not set -CONFIG_DRM_QXL=m -# CONFIG_DRM_R128 is not set -CONFIG_DRM_RADEON=m -CONFIG_DRM_RADEON_USERPTR=y -# CONFIG_DRM_RCAR_DW_HDMI is not set -# CONFIG_DRM_SAVAGE is not set -# CONFIG_DRM_SII902X is not set -CONFIG_DRM_SIL_SII8620=m -# CONFIG_DRM_SIS is not set -# CONFIG_DRM_TDFX is not set -# CONFIG_DRM_TINYDRM is not set -CONFIG_DRM_TI_TFP410=m -# CONFIG_DRM_TOSHIBA_TC358767 is not set -CONFIG_DRM_UDL=m -# CONFIG_DRM_VBOXVIDEO is not set -CONFIG_DRM_VGEM=m -CONFIG_DRM_VIA=m -CONFIG_DRM_VIRTIO_GPU=m -# CONFIG_DS1682 is not set -# CONFIG_DS1803 is not set -# CONFIG_DT3155 is not set -CONFIG_DTL=y -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -CONFIG_DUMMY_CONSOLE=y -# CONFIG_DUMMY_IRQ is not set -CONFIG_DUMMY=m -CONFIG_DVB_AS102=m -CONFIG_DVB_AV7110=m -CONFIG_DVB_AV7110_OSD=y -# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set -CONFIG_DVB_B2C2_FLEXCOP=m -# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set -CONFIG_DVB_B2C2_FLEXCOP_PCI=m -# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set -CONFIG_DVB_B2C2_FLEXCOP_USB=m -CONFIG_DVB_BT8XX=m -CONFIG_DVB_BUDGET_AV=m -CONFIG_DVB_BUDGET_CI=m -CONFIG_DVB_BUDGET_CORE=m -CONFIG_DVB_BUDGET=m -CONFIG_DVB_BUDGET_PATCH=m -CONFIG_DVB_CORE=m -# CONFIG_DVB_CXD2099 is not set -CONFIG_DVB_DDBRIDGE=m -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -CONFIG_DVB_DM1105=m -CONFIG_DVB_DYNAMIC_MINORS=y -CONFIG_DVB_FIREDTV=m -CONFIG_DVB_HOPPER=m -CONFIG_DVB_MANTIS=m -CONFIG_DVB_MAX_ADAPTERS=8 -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m -CONFIG_DVB_NETUP_UNIDVB=m -CONFIG_DVB_NET=y -CONFIG_DVB_NGENE=m -# CONFIG_DVB_PLATFORM_DRIVERS is not set -CONFIG_DVB_PLUTO2=m -CONFIG_DVB_PT1=m -# CONFIG_DVB_PT3 is not set -# CONFIG_DVB_RTL2832_SDR is not set -CONFIG_DVB_SMIPCIE=m -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m -CONFIG_DVB_USB_A800=m -CONFIG_DVB_USB_AF9005=m -CONFIG_DVB_USB_AF9005_REMOTE=m -CONFIG_DVB_USB_AF9015=m -CONFIG_DVB_USB_AF9035=m -CONFIG_DVB_USB_ANYSEE=m -CONFIG_DVB_USB_AU6610=m -CONFIG_DVB_USB_AZ6007=m -CONFIG_DVB_USB_AZ6027=m -CONFIG_DVB_USB_CE6230=m -CONFIG_DVB_USB_CINERGY_T2=m -CONFIG_DVB_USB_CXUSB=m -# CONFIG_DVB_USB_DEBUG is not set -CONFIG_DVB_USB_DIB0700=m -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set -CONFIG_DVB_USB_DIBUSB_MB=m -CONFIG_DVB_USB_DIBUSB_MC=m -CONFIG_DVB_USB_DIGITV=m -CONFIG_DVB_USB_DTT200U=m -CONFIG_DVB_USB_DTV5100=m -CONFIG_DVB_USB_DVBSKY=m -CONFIG_DVB_USB_DW2102=m -CONFIG_DVB_USB_EC168=m -CONFIG_DVB_USB_FRIIO=m -CONFIG_DVB_USB_GL861=m -CONFIG_DVB_USB_GP8PSK=m -CONFIG_DVB_USB_LME2510=m -CONFIG_DVB_USB=m -CONFIG_DVB_USB_M920X=m -CONFIG_DVB_USB_MXL111SF=m -CONFIG_DVB_USB_NOVA_T_USB2=m -CONFIG_DVB_USB_OPERA1=m -CONFIG_DVB_USB_PCTV452E=m -CONFIG_DVB_USB_RTL28XXU=m -CONFIG_DVB_USB_TECHNISAT_USB2=m -CONFIG_DVB_USB_TTUSB2=m -CONFIG_DVB_USB_UMT_010=m -CONFIG_DVB_USB_V2=m -CONFIG_DVB_USB_VP702X=m -CONFIG_DVB_USB_VP7045=m -CONFIG_DVB_USB_ZD1301=m -# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set -CONFIG_DW_DMAC_CORE=m -CONFIG_DW_DMAC=m -CONFIG_DW_DMAC_PCI=m -# CONFIG_DW_WATCHDOG is not set -CONFIG_DYNAMIC_DEBUG=y -CONFIG_DYNAMIC_FTRACE=y -CONFIG_E1000E=m -CONFIG_E1000=m -CONFIG_E100=m -CONFIG_EARLY_PRINTK_DBGP=y -CONFIG_EARLY_PRINTK_USB_XDBC=y -# CONFIG_EBC_C384_WDT is not set -CONFIG_ECHO=m -CONFIG_ECRYPT_FS=m -# CONFIG_ECRYPT_FS_MESSAGING is not set -# CONFIG_EDAC_CPC925 is not set -# CONFIG_EDAC_DEBUG is not set -CONFIG_EDAC_GHES=y -CONFIG_EDAC_LEGACY_SYSFS=y -# CONFIG_EDAC_MPC85XX is not set -CONFIG_EDAC=y -CONFIG_EEPROM_93CX6=m -# CONFIG_EEPROM_93XX46 is not set -CONFIG_EEPROM_AT24=m -# CONFIG_EEPROM_AT25 is not set -CONFIG_EEPROM_IDT_89HPESX=m -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -# CONFIG_EFI_ALLOW_SECURE_BOOT_EXIT is not set -CONFIG_EFI_PARTITION=y -CONFIG_EFI_PGT_DUMP=y -# CONFIG_EFI_SECURE_BOOT_LOCK_DOWN is not set -# CONFIG_EFI_SIGNATURE_LIST_PARSER is not set -# CONFIG_EFI_TEST is not set -# CONFIG_EFS_FS is not set -CONFIG_EHEA=m -# CONFIG_EMBEDDED is not set -CONFIG_ENABLE_MUST_CHECK=y -# CONFIG_ENABLE_WARN_DEPRECATED is not set -# CONFIG_ENC28J60 is not set -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_ENCRYPTED_KEYS=y -CONFIG_ENIC=m -CONFIG_ENVELOPE_DETECTOR=m -CONFIG_EPIC100=m -CONFIG_EPOLL=y -CONFIG_EQUALIZER=m -CONFIG_ESI_DONGLE=m -CONFIG_ET131X=m -CONFIG_ETHERNET=y -CONFIG_ETHOC=m -# CONFIG_EUROTECH_WDT is not set -# CONFIG_EVM is not set -# CONFIG_EXOFS_DEBUG is not set -# CONFIG_EXOFS_FS is not set -# CONFIG_EXPERT is not set -CONFIG_EXPORTFS=y -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_DEBUG=y -CONFIG_EXT4_ENCRYPTION=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y -# CONFIG_EXTCON_ADC_JACK is not set -# CONFIG_EXTCON_GPIO is not set -# CONFIG_EXTCON_MAX3355 is not set -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set -# CONFIG_EXTCON_RT8973A is not set -# CONFIG_EXTCON_SM5502 is not set -# CONFIG_EXTCON_USB_GPIO is not set -CONFIG_EXTCON=y -CONFIG_EXTRA_FIRMWARE="" -CONFIG_EXTRA_TARGETS="" -# CONFIG_EZNPS_GIC is not set -# CONFIG_EZX_PCAP is not set -# CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FAULT_INJECTION is not set -# CONFIG_F2FS_FS_ENCRYPTION is not set -CONFIG_F2FS_FS=m -CONFIG_F2FS_FS_POSIX_ACL=y -CONFIG_F2FS_FS_SECURITY=y -CONFIG_F2FS_FS_XATTR=y -# CONFIG_F2FS_IO_TRACE is not set -CONFIG_F2FS_STAT_FS=y -CONFIG_FA_DUMP=y -# CONFIG_FAIL_FUTEX is not set -# CONFIG_FAIL_IOMMU is not set -CONFIG_FAIL_IO_TIMEOUT=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAIL_MMC_REQUEST=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAILSLAB=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y -CONFIG_FANOTIFY=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="ascii" -# CONFIG_FAT_DEFAULT_UTF8 is not set -CONFIG_FAT_FS=m -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAULT_INJECTION=y -# CONFIG_FB_3DFX is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_ASILIANT is not set -CONFIG_FB_ATY128_BACKLIGHT=y -# CONFIG_FB_ATY128 is not set -CONFIG_FB_ATY_BACKLIGHT=y -# CONFIG_FB_ATY_CT is not set -# CONFIG_FB_ATY_GX is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_AUO_K190X is not set -# CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_CARMINE is not set -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_CONTROL is not set -# CONFIG_FB_CT65550 is not set -# CONFIG_FB_CYBER2000 is not set -CONFIG_FB_EFI=y -# CONFIG_FB_FOREIGN_ENDIAN is not set -# CONFIG_FB_HECUBA is not set -# CONFIG_FB_I740 is not set -CONFIG_FB_IBM_GXT4500=y -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_KYRO is not set -CONFIG_FB_MATROX_G=y -# CONFIG_FB_MATROX_I2C is not set -# CONFIG_FB_MATROX_MILLENIUM is not set -# CONFIG_FB_MATROX_MYSTIQUE is not set -CONFIG_FB_MATROX=y -# CONFIG_FB_MB862XX_I2C is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_MB862XX_LIME is not set -# CONFIG_FB_MB862XX_PCI_GDC is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_NEOMAGIC is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -# CONFIG_FB_NVIDIA_DEBUG is not set -# CONFIG_FB_NVIDIA_I2C is not set -# CONFIG_FB_NVIDIA is not set -CONFIG_FB_OF=y -# CONFIG_FB_OPENCORES is not set -# CONFIG_FB_PLATINUM is not set -# CONFIG_FB_PM2_FIFO_DISCONNECT is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_PRE_INIT_FB is not set -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -# CONFIG_FB_RADEON_I2C is not set -# CONFIG_FB_RADEON is not set -CONFIG_FB_RIVA_BACKLIGHT=y -# CONFIG_FB_RIVA_DEBUG is not set -# CONFIG_FB_RIVA_I2C is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIMPLE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_SM501 is not set -# CONFIG_FB_SM712 is not set -# CONFIG_FB_SM750 is not set -# CONFIG_FB_SMSCUFX is not set -CONFIG_FB_SSD1307=m -# CONFIG_FB_TFT is not set -CONFIG_FB_TILEBLITTING=y -# CONFIG_FB_TMIO is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_UDL is not set -# CONFIG_FB_UVESA is not set -# CONFIG_FB_VALKYRIE is not set -CONFIG_FB_VESA=y -# CONFIG_FB_VGA16 is not set -CONFIG_FB_VIRTUAL=m -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_XGI is not set -CONFIG_FB=y -CONFIG_FCOE_FNIC=m -CONFIG_FCOE=m -# CONFIG_FDDI is not set -CONFIG_FEALNX=m -CONFIG_FHANDLE=y -# CONFIG_FHCI_DEBUG is not set -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_NET=m -CONFIG_FIREWIRE_NOSY=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_SBP2=m -# CONFIG_FIREWIRE_SERIAL is not set -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_FIXED_PHY=y -CONFIG_FM10K=m -CONFIG_FMC_CHARDEV=m -CONFIG_FMC_FAKEDEV=m -CONFIG_FMC=m -CONFIG_FMC_TRIVIAL=m -CONFIG_FMC_WRITE_EEPROM=m -# CONFIG_FONTS is not set -CONFIG_FORCEDETH=m -CONFIG_FORCE_MAX_ZONEORDER=9 -CONFIG_FORTIFY_SOURCE=y -# CONFIG_FPGA is not set -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAME_POINTER=y -CONFIG_FRAME_WARN=2048 -CONFIG_FRONTSWAP=y -# CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_HISTOGRAM is not set -CONFIG_FSCACHE=m -CONFIG_FSCACHE_OBJECT_LIST=y -CONFIG_FSCACHE_STATS=y -CONFIG_FS_DAX=y -CONFIG_FS_ENCRYPTION=y -# CONFIG_FS_ENET is not set -CONFIG_FSI=m -CONFIG_FSI_MASTER_GPIO=m -CONFIG_FSI_MASTER_HUB=m -CONFIG_FSI_SCOM=m -# CONFIG_FSL_DMA is not set -# CONFIG_FSL_EDMA is not set -# CONFIG_FSL_LBC is not set -# CONFIG_FSL_PQ_MDIO is not set -CONFIG_FS_MBCACHE=y -CONFIG_FSNOTIFY=y -# CONFIG_FTL is not set -CONFIG_FTRACE_MCOUNT_RECORD=y -# CONFIG_FTRACE_STARTUP_TEST is not set -CONFIG_FTRACE_SYSCALLS=y -CONFIG_FTRACE=y -# CONFIG_FTR_FIXUP_SELFTEST is not set -# CONFIG_FUNCTION_GRAPH_TRACER is not set -CONFIG_FUNCTION_PROFILER=y -CONFIG_FUNCTION_TRACER=y -CONFIG_FUSE_FS=m -CONFIG_FUSION_CTL=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_LAN=m -CONFIG_FUSION_LOGGING=y -CONFIG_FUSION_MAX_SGE=40 -CONFIG_FUSION_SAS=m -CONFIG_FUSION_SPI=m -CONFIG_FUSION=y -CONFIG_FUTEX=y -# CONFIG_FW_CFG_SYSFS_CMDLINE is not set -CONFIG_FW_CFG_SYSFS=m -# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set -# CONFIG_FW_LOADER_USER_HELPER is not set -CONFIG_FW_LOADER=y -CONFIG_GACT_PROB=y -CONFIG_GAMEPORT_EMU10K1=m -CONFIG_GAMEPORT_FM801=m -CONFIG_GAMEPORT_L4=m -CONFIG_GAMEPORT=m -CONFIG_GAMEPORT_NS558=m -# CONFIG_GCC_PLUGINS is not set -# CONFIG_GCOV_KERNEL is not set -# CONFIG_GDB_SCRIPTS is not set -# CONFIG_GEF_PPC9A is not set -# CONFIG_GEF_SBC310 is not set -# CONFIG_GEF_SBC610 is not set -# CONFIG_GENERIC_ADC_BATTERY is not set -# CONFIG_GENERIC_ADC_THERMAL is not set -# CONFIG_GENERIC_IRQ_DEBUGFS is not set -CONFIG_GENERIC_PHY=y -CONFIG_GENEVE=m -# CONFIG_GEN_RTC is not set -CONFIG_GENWQE=m -CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=1 -CONFIG_GFS2_FS_LOCKING_DLM=y -CONFIG_GFS2_FS=m -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_CAPI=y -# CONFIG_GIGASET_DEBUG is not set -CONFIG_GIGASET_M101=m -CONFIG_GIGASET_M105=m -CONFIG_GIRBIL_DONGLE=m -# CONFIG_GLOB_SELFTEST is not set -# CONFIG_GOLDFISH is not set -# CONFIG_GOOGLE_FIRMWARE is not set -# CONFIG_GP2AP020A00F is not set -# CONFIG_GPIO_104_DIO_48E is not set -# CONFIG_GPIO_104_IDIO_16 is not set -# CONFIG_GPIO_74X164 is not set -# CONFIG_GPIO_74XX_MMIO is not set -# CONFIG_GPIO_ADNP is not set -# CONFIG_GPIO_ADP5588 is not set -# CONFIG_GPIO_ALTERA is not set -# CONFIG_GPIO_AMDPT is not set -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_DWAPB is not set -CONFIG_GPIO_EXAR=m -# CONFIG_GPIO_FTGPIO010 is not set -# CONFIG_GPIO_GENERIC_PLATFORM is not set -# CONFIG_GPIO_GRGPIO is not set -# CONFIG_GPIO_IT87 is not set -CONFIG_GPIOLIB=y -# CONFIG_GPIO_MAX7300 is not set -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_MCP23S08 is not set -# CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -# CONFIG_GPIO_PCH is not set -CONFIG_GPIO_PCI_IDIO_16=m -# CONFIG_GPIO_PISOSR is not set -# CONFIG_GPIO_RDC321X is not set -# CONFIG_GPIO_SCH311X is not set -# CONFIG_GPIO_SX150X is not set -# CONFIG_GPIO_SYSCON is not set -# CONFIG_GPIO_SYSFS is not set -# CONFIG_GPIO_TPIC2810 is not set -# CONFIG_GPIO_TS4900 is not set -# CONFIG_GPIO_TS5500 is not set -# CONFIG_GPIO_UCB1400 is not set -CONFIG_GPIO_VIPERBOARD=m -# CONFIG_GPIO_WATCHDOG is not set -CONFIG_GPIO_WM831X=m -# CONFIG_GPIO_WS16C48 is not set -# CONFIG_GPIO_XILINX is not set -# CONFIG_GPIO_XRA1403 is not set -CONFIG_GREENASIA_FF=y -# CONFIG_GREYBUS is not set -# CONFIG_GS_FPGABOOT is not set -CONFIG_GTP=m -CONFIG_HAMACHI=m -CONFIG_HAMRADIO=y -CONFIG_HANGCHECK_TIMER=m -CONFIG_HAPPYMEAL=m -CONFIG_HARDENED_USERCOPY=y -CONFIG_HARDLOCKUP_DETECTOR=y -CONFIG_HAVE_BOOTMEM_INFO_NODE=y -# CONFIG_HCALL_STATS is not set -CONFIG_HD44780=m -# CONFIG_HDC100X is not set -CONFIG_HEADERS_CHECK=y -CONFIG_HERMES_CACHE_FW_ON_INIT=y -CONFIG_HERMES=m -CONFIG_HERMES_PRISM=y -CONFIG_HFS_FS=m -CONFIG_HFSPLUS_FS=m -# CONFIG_HFSPLUS_FS_POSIX_ACL is not set -# CONFIG_HI8435 is not set -# CONFIG_HIBERNATION is not set -CONFIG_HID_A4TECH=m -CONFIG_HID_ACCUTOUCH=m -CONFIG_HID_ACRUX_FF=y -CONFIG_HID_ACRUX=m -CONFIG_HID_ALPS=m -CONFIG_HID_APPLEIR=m -CONFIG_HID_APPLE=m -# CONFIG_HID_ASUS is not set -CONFIG_HID_AUREAL=m -CONFIG_HID_BATTERY_STRENGTH=y -CONFIG_HID_BELKIN=m -CONFIG_HID_BETOP_FF=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_CMEDIA=m -CONFIG_HID_CORSAIR=m -# CONFIG_HID_CP2112 is not set -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -CONFIG_HID_ELECOM=m -CONFIG_HID_ELO=m -CONFIG_HID_EMS_FF=m -CONFIG_HID_EZKEY=m -CONFIG_HID_GEMBIRD=m -CONFIG_HID_GENERIC=y -CONFIG_HID_GFRM=m -CONFIG_HID_GREENASIA=m -CONFIG_HID_GT683R=m -CONFIG_HID_GYRATION=m -CONFIG_HID_HOLTEK=m -CONFIG_HID_ICADE=m -CONFIG_HID_ITE=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_LCPOWER=m -CONFIG_HID_LED=m -CONFIG_HID_LENOVO=m -CONFIG_HID_LOGITECH_DJ=m -CONFIG_HID_LOGITECH_HIDPP=m -CONFIG_HID_LOGITECH=m -CONFIG_HID_MAGICMOUSE=y -CONFIG_HID_MAYFLASH=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTI=m -CONFIG_HID_NTRIG=y -CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -CONFIG_HID_PENMOUNT=m -CONFIG_HID_PETALYNX=m -CONFIG_HID_PICOLCD=m -CONFIG_HID_PID=y -CONFIG_HID_PLANTRONICS=m -CONFIG_HID_PRIMAX=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HIDRAW=y -CONFIG_HID_RETRODE=m -CONFIG_HID_RMI=m -CONFIG_HID_ROCCAT=m -CONFIG_HID_SAITEK=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SENSOR_ACCEL_3D=m -CONFIG_HID_SENSOR_ALS=m -# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set -CONFIG_HID_SENSOR_DEVICE_ROTATION=m -CONFIG_HID_SENSOR_GYRO_3D=m -CONFIG_HID_SENSOR_HUB=m -CONFIG_HID_SENSOR_HUMIDITY=m -CONFIG_HID_SENSOR_IIO_COMMON=m -CONFIG_HID_SENSOR_IIO_TRIGGER=m -CONFIG_HID_SENSOR_INCLINOMETER_3D=m -CONFIG_HID_SENSOR_MAGNETOMETER_3D=m -# CONFIG_HID_SENSOR_PRESS is not set -# CONFIG_HID_SENSOR_PROX is not set -CONFIG_HID_SENSOR_TEMP=m -CONFIG_HID_SMARTJOYPLUS=m -CONFIG_HID_SONY=m -CONFIG_HID_SPEEDLINK=m -CONFIG_HID_STEELSERIES=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_THINGM=m -CONFIG_HID_THRUSTMASTER=m -CONFIG_HID_TIVO=m -CONFIG_HID_TOPSEED=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_UDRAW_PS3=m -CONFIG_HID_WACOM=m -CONFIG_HID_WALTOP=m -CONFIG_HID_WIIMOTE=m -CONFIG_HID_XINMO=m -CONFIG_HID=y -CONFIG_HID_ZEROPLUS=m -CONFIG_HID_ZYDACRON=m -CONFIG_HIGH_RES_TIMERS=y -# CONFIG_HIPPI is not set -CONFIG_HISAX_16_3=y -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_BKM_A4T=y -# CONFIG_HISAX_DEBUG is not set -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_EURO=y -CONFIG_HISAX_FRITZ_PCIPNP=m -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC4S8S=m -CONFIG_HISAX_HFC_PCI=y -CONFIG_HISAX_HFC_SX=y -# CONFIG_HISAX_HFCUSB is not set -CONFIG_HISAX_MAX_CARDS=8 -CONFIG_HISAX_NETJET_U=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_NO_KEYPAD=y -CONFIG_HISAX_NO_LLC=y -CONFIG_HISAX_NO_SENDCOMPLETE=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_SCT_QUADRO=y -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_TELES_CS=m -CONFIG_HISAX_TELESPCI=y -CONFIG_HISAX_W6692=y -CONFIG_HIST_TRIGGERS=y -# CONFIG_HMC6352 is not set -# CONFIG_HMC_DRV is not set -CONFIG_HOLTEK_FF=y -# CONFIG_HOSTAP is not set -CONFIG_HOTPLUG_CPU=y -CONFIG_HOTPLUG_PCI_ACPI_IBM=m -CONFIG_HOTPLUG_PCI_ACPI=y -# CONFIG_HOTPLUG_PCI_CPCI is not set -CONFIG_HOTPLUG_PCI_PCIE=y -# CONFIG_HOTPLUG_PCI_POWERNV is not set -CONFIG_HOTPLUG_PCI_RPA_DLPAR=m -CONFIG_HOTPLUG_PCI_RPA=m -CONFIG_HOTPLUG_PCI_SHPC=m -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG=y -# CONFIG_HP03 is not set -# CONFIG_HP206C is not set -# CONFIG_HPFS_FS is not set -# CONFIG_HP_ILO is not set -# CONFIG_HSI is not set -# CONFIG_HSR is not set -# CONFIG_HSU_DMA is not set -# CONFIG_HSU_DMA_PCI is not set -CONFIG_HT16K33=m -# CONFIG_HTC_EGPIO is not set -# CONFIG_HTC_I2CPLD is not set -# CONFIG_HTC_PASIC3 is not set -CONFIG_HT_IRQ=y -CONFIG_HTS221=m -# CONFIG_HTU21 is not set -CONFIG_HUGETLBFS=y -CONFIG_HUGETLB_PAGE=y -CONFIG_HVC_CONSOLE=y -# CONFIG_HVC_OLD_HVSI is not set -CONFIG_HVC_OPAL=y -CONFIG_HVC_RTAS=y -CONFIG_HVCS=m -# CONFIG_HVC_UDBG is not set -CONFIG_HV_PERF_CTRS=y -CONFIG_HW_CONSOLE=y -CONFIG_HWLAT_TRACER=y -# CONFIG_HWMON_DEBUG_CHIP is not set -CONFIG_HWMON=y -CONFIG_HWPOISON_INJECT=m -CONFIG_HW_RANDOM_OMAP=m -CONFIG_HW_RANDOM_POWERNV=m -CONFIG_HW_RANDOM_PSERIES=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_TPM=m -CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_HW_RANDOM=y -CONFIG_HWSPINLOCK=m -# CONFIG_HX711 is not set -CONFIG_HYSDN_CAPI=y -CONFIG_HYSDN=m -CONFIG_HZ=100 -# CONFIG_HZ_1000 is not set -CONFIG_HZ_100=y -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCA=m -CONFIG_I2C_ALGOPCF=m -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD756_S4882 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set -# CONFIG_I2C_BCM2048 is not set -# CONFIG_I2C_CADENCE is not set -# CONFIG_I2C_CBUS_GPIO is not set -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_COMPAT=y -# CONFIG_I2C_CPM is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEMUX_PINCTRL is not set -# CONFIG_I2C_DESIGNWARE is not set -CONFIG_I2C_DESIGNWARE_PCI=m -# CONFIG_I2C_DESIGNWARE_PLATFORM is not set -CONFIG_I2C_DESIGNWARE_SLAVE=y -CONFIG_I2C_DIOLAN_U2C=m -# CONFIG_I2C_EG20T is not set -# CONFIG_I2C_EMEV2 is not set -# CONFIG_I2C_GPIO is not set -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_HID=m -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_ISCH is not set -CONFIG_I2C=m -CONFIG_I2C_MLXCPLD=m -CONFIG_I2C_MPC=m -# CONFIG_I2C_MUX_GPIO is not set -CONFIG_I2C_MUX_GPMUX=m -CONFIG_I2C_MUX_LTC4306=m -CONFIG_I2C_MUX=m -CONFIG_I2C_MUX_MLXCPLD=m -# CONFIG_I2C_MUX_PCA9541 is not set -# CONFIG_I2C_MUX_PCA954x is not set -# CONFIG_I2C_MUX_PINCTRL is not set -# CONFIG_I2C_MUX_REG is not set -CONFIG_I2C_NFORCE2=m -# CONFIG_I2C_NFORCE2_S4985 is not set -# CONFIG_I2C_OCORES is not set -CONFIG_I2C_OPAL=m -# CONFIG_I2C_PARPORT_LIGHT is not set -CONFIG_I2C_PCA_PLATFORM=m -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_RK3X is not set -# CONFIG_I2C_ROBOTFUZZ_OSIF is not set -CONFIG_I2C_SI470X=m -# CONFIG_I2C_SI4713 is not set -CONFIG_I2C_SIMTEC=m -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -CONFIG_I2C_SLAVE_EEPROM=m -CONFIG_I2C_SLAVE=y -CONFIG_I2C_STUB=m -# CONFIG_I2C_TAOS_EVM is not set -CONFIG_I2C_TINY_USB=m -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -CONFIG_I2C_VIPERBOARD=m -# CONFIG_I2C_XILINX is not set -# CONFIG_I2O is not set -# CONFIG_I40E_DCB is not set -# CONFIG_I40E_FCOE is not set -CONFIG_I40E=m -CONFIG_I40EVF=m -CONFIG_I6300ESB_WDT=m -CONFIG_I82092=m -# CONFIG_IAQCORE is not set -CONFIG_IBM_BSR=m -CONFIG_IBMEBUS=y -# CONFIG_IBM_EMAC is not set -CONFIG_IBMVETH=m -CONFIG_IBMVNIC=m -CONFIG_ICPLUS_PHY=m -# CONFIG_ICS932S401 is not set -# CONFIG_IDE is not set -# CONFIG_IDEPCI_PCIBUS_ORDER is not set -# CONFIG_IDLE_PAGE_TRACKING is not set -# CONFIG_IDMA64 is not set -CONFIG_IEEE802154_6LOWPAN=m -CONFIG_IEEE802154_ADF7242=m -# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set -CONFIG_IEEE802154_AT86RF230=m -CONFIG_IEEE802154_ATUSB=m -# CONFIG_IEEE802154_CA8210_DEBUGFS is not set -CONFIG_IEEE802154_CA8210=m -CONFIG_IEEE802154_CC2520=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKELB=m -CONFIG_IEEE802154=m -CONFIG_IEEE802154_MRF24J40=m -# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set -CONFIG_IEEE802154_SOCKET=m -CONFIG_IFB=m -CONFIG_IGB_DCA=y -CONFIG_IGB_HWMON=y -CONFIG_IGB=m -CONFIG_IGBVF=m -CONFIG_IIO_BUFFER_CB=m -CONFIG_IIO_BUFFER=y -CONFIG_IIO_CONFIGFS=m -CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 -# CONFIG_IIO_HRTIMER_TRIGGER is not set -CONFIG_IIO_INTERRUPT_TRIGGER=m -CONFIG_IIO_KFIFO_BUF=m -CONFIG_IIO=m -CONFIG_IIO_MUX=m -# CONFIG_IIO_SIMPLE_DUMMY is not set -# CONFIG_IIO_SSP_SENSORHUB is not set -CONFIG_IIO_ST_ACCEL_3AXIS=m -CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m -CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m -CONFIG_IIO_ST_GYRO_3AXIS=m -CONFIG_IIO_ST_GYRO_I2C_3AXIS=m -CONFIG_IIO_ST_GYRO_SPI_3AXIS=m -# CONFIG_IIO_ST_LSM6DSX is not set -CONFIG_IIO_ST_MAGN_3AXIS=m -# CONFIG_IIO_ST_PRESS is not set -CONFIG_IIO_SW_DEVICE=m -CONFIG_IIO_SW_TRIGGER=m -# CONFIG_IIO_SYSFS_TRIGGER is not set -CONFIG_IIO_TIGHTLOOP_TRIGGER=m -CONFIG_IIO_TRIGGERED_BUFFER=m -CONFIG_IIO_TRIGGER=y -# CONFIG_IKCONFIG is not set -# CONFIG_IMA is not set -CONFIG_IMA_LSM_RULES=y -CONFIG_IMA_MEASURE_PCR_IDX=10 -# CONFIG_IMG_ASCII_LCD is not set -# CONFIG_INA2XX_ADC is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_ESP_OFFLOAD=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET_AH=m -CONFIG_INET_DIAG_DESTROY=y -CONFIG_INET_DIAG=m -CONFIG_INET_ESP=m -CONFIG_INET_ESP_OFFLOAD=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_RAW_DIAG=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_UDP_DIAG=m -CONFIG_INET_XFRM_MODE_BEET=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET=y -# CONFIG_INFINIBAND_BNXT_RE is not set -# CONFIG_INFINIBAND_CXGB3_DEBUG is not set -CONFIG_INFINIBAND_CXGB3=m -CONFIG_INFINIBAND_CXGB4=m -CONFIG_INFINIBAND_I40IW=m -CONFIG_INFINIBAND_IPOIB_CM=y -CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y -CONFIG_INFINIBAND_IPOIB_DEBUG=y -CONFIG_INFINIBAND_IPOIB=m -CONFIG_INFINIBAND_ISER=m -CONFIG_INFINIBAND_ISERT=m -CONFIG_INFINIBAND=m -CONFIG_INFINIBAND_MTHCA=m -# CONFIG_INFINIBAND_NES_DEBUG is not set -CONFIG_INFINIBAND_NES=m -CONFIG_INFINIBAND_OCRDMA=m -CONFIG_INFINIBAND_ON_DEMAND_PAGING=y -# CONFIG_INFINIBAND_QEDR is not set -CONFIG_INFINIBAND_QIB_DCA=y -CONFIG_INFINIBAND_QIB=m -CONFIG_INFINIBAND_RDMAVT=m -CONFIG_INFINIBAND_SRP=m -CONFIG_INFINIBAND_SRPT=m -CONFIG_INFINIBAND_USER_ACCESS=m -CONFIG_INFINIBAND_USER_MAD=m -CONFIG_INFINIBAND_USNIC=m -# CONFIG_INFINIBAND_VMWARE_PVRDMA is not set -# CONFIG_INFTL is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_INOTIFY_USER=y -# CONFIG_INPUT_AD714X is not set -# CONFIG_INPUT_ADXL34X is not set -CONFIG_INPUT_APANEL=m -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_ATLAS_BTNS=m -# CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BMA150 is not set -CONFIG_INPUT_CM109=m -CONFIG_INPUT_CMA3000_I2C=m -CONFIG_INPUT_CMA3000=m -# CONFIG_INPUT_DRV260X_HAPTICS is not set -# CONFIG_INPUT_DRV2665_HAPTICS is not set -# CONFIG_INPUT_DRV2667_HAPTICS is not set -CONFIG_INPUT_E3X0_BUTTON=m -# CONFIG_INPUT_EVBUG is not set -CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_FF_MEMLESS=m -# CONFIG_INPUT_GP2A is not set -# CONFIG_INPUT_GPIO_BEEPER is not set -# CONFIG_INPUT_GPIO_DECODER is not set -# CONFIG_INPUT_GPIO is not set -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -# CONFIG_INPUT_GPIO_TILT_POLLED is not set -CONFIG_INPUT_IDEAPAD_SLIDEBAR=m -# CONFIG_INPUT_IMS_PCU is not set -CONFIG_INPUT_JOYDEV=m -CONFIG_INPUT_JOYSTICK=y -CONFIG_INPUT_KEYBOARD=y -CONFIG_INPUT_KEYSPAN_REMOTE=m -CONFIG_INPUT_KXTJ9=m -# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set -CONFIG_INPUT_LEDS=y -CONFIG_INPUT_MATRIXKMAP=m -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSE=y -CONFIG_INPUT_PCF50633_PMU=m -# CONFIG_INPUT_PCF8574 is not set -# CONFIG_INPUT_PCSPKR is not set -CONFIG_INPUT_PM8XXX_VIBRATOR=m -CONFIG_INPUT_PMIC8XXX_PWRKEY=m -CONFIG_INPUT_POLLDEV=m -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_PWM_BEEPER=m -CONFIG_INPUT_RETU_PWRBUTTON=m -CONFIG_INPUT_SPARSEKMAP=m -CONFIG_INPUT_TABLET=y -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_INPUT_UINPUT=m -CONFIG_INPUT_WISTRON_BTNS=m -CONFIG_INPUT_WM831X_ON=m -CONFIG_INPUT=y -CONFIG_INPUT_YEALINK=m -# CONFIG_INTEGRITY is not set -# CONFIG_INTEL_IDMA64 is not set -# CONFIG_INTEL_SOC_PMIC is not set -# CONFIG_INTEL_TH is not set -CONFIG_INTEL_XWAY_PHY=m -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_INV_MPU6050_I2C is not set -# CONFIG_INV_MPU6050_IIO is not set -# CONFIG_INV_MPU6050_SPI is not set -CONFIG_IO_EVENT_IRQ=y -CONFIG_IOMMU_SUPPORT=y -CONFIG_IOSCHED_BFQ=m -CONFIG_IOSCHED_CFQ=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_NOOP=y -CONFIG_IO_STRICT_DEVMEM=y -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_RPFILTER=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_NAT=m -CONFIG_IP6_NF_RAW=m -CONFIG_IP6_NF_SECURITY=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_MASQUERADE=m -# CONFIG_IP6_NF_TARGET_NPT is not set -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_TARGET_SYNPROXY=m -# CONFIG_IPACK_BUS is not set -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IPC_NS=y -# CONFIG_IP_DCCP_CCID2_DEBUG is not set -CONFIG_IP_DCCP_CCID2=m -# CONFIG_IP_DCCP_CCID3_DEBUG is not set -CONFIG_IP_DCCP_CCID3=y -# CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m -CONFIG_IPDDP_ENCAP=y -CONFIG_IPDDP=m -CONFIG_IP_FIB_TRIE_STATS=y -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_HANDLER=m -# CONFIG_IPMI_PANIC_EVENT is not set -CONFIG_IPMI_POWERNV=m -CONFIG_IPMI_POWEROFF=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_SSIF=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IP_MROUTE_MULTIPLE_TABLES=y -CONFIG_IP_MROUTE=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_RPFILTER=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_SECURITY=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_TARGET_SYNPROXY=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -# CONFIG_IP_PNP is not set -CONFIG_IPPP_FILTER=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_SCTP=m -CONFIG_IP_SET_BITMAP_IP=m -CONFIG_IP_SET_BITMAP_IPMAC=m -CONFIG_IP_SET_BITMAP_PORT=m -CONFIG_IP_SET_HASH_IP=m -CONFIG_IP_SET_HASH_IPMAC=m -CONFIG_IP_SET_HASH_IPMARK=m -CONFIG_IP_SET_HASH_IPPORTIP=m -CONFIG_IP_SET_HASH_IPPORT=m -CONFIG_IP_SET_HASH_IPPORTNET=m -CONFIG_IP_SET_HASH_MAC=m -CONFIG_IP_SET_HASH_NETIFACE=m -CONFIG_IP_SET_HASH_NET=m -CONFIG_IP_SET_HASH_NETNET=m -CONFIG_IP_SET_HASH_NETPORT=m -CONFIG_IP_SET_HASH_NETPORTNET=m -CONFIG_IP_SET_LIST_SET=m -CONFIG_IP_SET=m -CONFIG_IP_SET_MAX=256 -CONFIG_IPV6_GRE=m -CONFIG_IPV6_ILA=m -CONFIG_IPV6_MIP6=y -CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y -CONFIG_IPV6_MROUTE=y -CONFIG_IPV6_MULTIPLE_TABLES=y -CONFIG_IPV6_OPTIMISTIC_DAD=y -CONFIG_IPV6_PIMSM_V2=y -CONFIG_IPV6_ROUTE_INFO=y -CONFIG_IPV6_ROUTER_PREF=y -CONFIG_IPV6_SEG6_HMAC=y -CONFIG_IPV6_SEG6_INLINE=y -CONFIG_IPV6_SEG6_LWTUNNEL=y -CONFIG_IPV6_SIT_6RD=y -CONFIG_IPV6_SIT=m -CONFIG_IPV6_SUBTREES=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_VTI=m -CONFIG_IPV6=y -CONFIG_IPVLAN=m -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_FO=m -CONFIG_IP_VS_FTP=m -CONFIG_IP_VS_IPV6=y -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS=m -CONFIG_IP_VS_NQ=m -CONFIG_IP_VS_OVF=m -CONFIG_IP_VS_PE_SIP=m -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_SCTP=y -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SH_TAB_BITS=8 -CONFIG_IP_VS_TAB_BITS=12 -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_WRR=m -CONFIG_IPVTAP=m -# CONFIG_IPW2100_DEBUG is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200_DEBUG is not set -# CONFIG_IPW2200 is not set -CONFIG_IPWIRELESS=m -# CONFIG_IPX_INTERN is not set -CONFIG_IPX=m -CONFIG_IRCOMM=m -CONFIG_IRDA_CACHE_LAST_LSAP=y -# CONFIG_IRDA_DEBUG is not set -CONFIG_IRDA_FAST_RR=y -CONFIG_IRDA=m -# CONFIG_IRDA_ULTRA is not set -CONFIG_IR_ENE=m -CONFIG_IR_FINTEK=m -CONFIG_IR_GPIO_CIR=m -CONFIG_IR_HIX5HD2=m -CONFIG_IR_IGORPLUGUSB=m -CONFIG_IR_IGUANA=m -# CONFIG_IR_IMG is not set -CONFIG_IR_IMON=m -CONFIG_IR_ITE_CIR=m -CONFIG_IR_JVC_DECODER=m -CONFIG_IRLAN=m -CONFIG_IR_LIRC_CODEC=m -CONFIG_IR_MCE_KBD_DECODER=m -CONFIG_IR_MCEUSB=m -CONFIG_IR_NEC_DECODER=m -CONFIG_IRNET=m -CONFIG_IR_NUVOTON=m -CONFIG_IRQ_ALL_CPUS=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set -# CONFIG_IRQSOFF_TRACER is not set -CONFIG_IRQSTACKS=y -CONFIG_IRQ_TIME_ACCOUNTING=y -CONFIG_IR_RC5_DECODER=m -CONFIG_IR_RC6_DECODER=m -CONFIG_IR_REDRAT3=m -CONFIG_IR_SANYO_DECODER=m -CONFIG_IR_SERIAL=m -CONFIG_IR_SERIAL_TRANSMITTER=y -CONFIG_IR_SHARP_DECODER=m -CONFIG_IR_SIR=m -CONFIG_IR_SONY_DECODER=m -CONFIG_IR_SPI=m -CONFIG_IR_STREAMZAP=m -CONFIG_IR_TTUSBIR=m -CONFIG_IRTTY_SIR=m -CONFIG_IR_WINBOND_CIR=m -CONFIG_IR_XMP_DECODER=m -# CONFIG_ISA is not set -CONFIG_ISCSI_BOOT_SYSFS=m -CONFIG_ISCSI_TARGET_CXGB4=m -CONFIG_ISCSI_TARGET=m -CONFIG_ISCSI_TCP=m -CONFIG_ISDN_AUDIO=y -CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIDRV=m -# CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE is not set -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVERSION=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_ISDN_DRV_HISAX=m -CONFIG_ISDN_DRV_LOOP=m -CONFIG_ISDN_I4L=m -CONFIG_ISDN_MPP=y -# CONFIG_ISDN_PPP_BSDCOMP is not set -CONFIG_ISDN_PPP_VJ=y -CONFIG_ISDN_PPP=y -CONFIG_ISDN_TTY_FAX=y -CONFIG_ISDN=y -# CONFIG_ISI is not set -CONFIG_ISL29003=m -CONFIG_ISL29020=m -# CONFIG_ISL29125 is not set -CONFIG_ISO9660_FS=m -CONFIG_IT8712F_WDT=m -CONFIG_IT87_WDT=m -CONFIG_ITCO_VENDOR_SUPPORT=y -CONFIG_ITCO_WDT=m -# CONFIG_ITG3200 is not set -CONFIG_IWL3945=m -CONFIG_IWL4965=m -CONFIG_IWLDVM=m -CONFIG_IWLEGACY_DEBUGFS=y -CONFIG_IWLEGACY_DEBUG=y -CONFIG_IWLEGACY=m -CONFIG_IWLMVM=m -# CONFIG_IWLWIFI_BCAST_FILTERING is not set -CONFIG_IWLWIFI_DEBUGFS=y -CONFIG_IWLWIFI_DEBUG=y -CONFIG_IWLWIFI_DEVICE_TRACING=y -CONFIG_IWLWIFI=m -# CONFIG_IWLWIFI_PCIE_RTPM is not set -# CONFIG_IWM is not set -CONFIG_IXGBE_DCA=y -CONFIG_IXGBE_DCB=y -CONFIG_IXGBE_HWMON=y -CONFIG_IXGBE=m -CONFIG_IXGBEVF=m -CONFIG_IXGB=m -CONFIG_JBD2_DEBUG=y -CONFIG_JBD2=y -# CONFIG_JFFS2_FS is not set -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_STATISTICS is not set -CONFIG_JME=m -CONFIG_JOLIET=y -CONFIG_JOYSTICK_A3D=m -CONFIG_JOYSTICK_ADI=m -CONFIG_JOYSTICK_ANALOG=m -# CONFIG_JOYSTICK_AS5011 is not set -CONFIG_JOYSTICK_COBRA=m -CONFIG_JOYSTICK_DB9=m -CONFIG_JOYSTICK_GAMECON=m -CONFIG_JOYSTICK_GF2K=m -CONFIG_JOYSTICK_GRIP=m -CONFIG_JOYSTICK_GRIP_MP=m -CONFIG_JOYSTICK_GUILLEMOT=m -CONFIG_JOYSTICK_IFORCE_232=y -CONFIG_JOYSTICK_IFORCE=m -CONFIG_JOYSTICK_IFORCE_USB=y -CONFIG_JOYSTICK_INTERACT=m -CONFIG_JOYSTICK_JOYDUMP=m -CONFIG_JOYSTICK_MAGELLAN=m -CONFIG_JOYSTICK_PSXPAD_SPI_FF=y -CONFIG_JOYSTICK_PSXPAD_SPI=m -CONFIG_JOYSTICK_SIDEWINDER=m -CONFIG_JOYSTICK_SPACEBALL=m -CONFIG_JOYSTICK_SPACEORB=m -CONFIG_JOYSTICK_STINGER=m -CONFIG_JOYSTICK_TMDC=m -CONFIG_JOYSTICK_TURBOGRAFX=m -CONFIG_JOYSTICK_TWIDJOY=m -CONFIG_JOYSTICK_WALKERA0701=m -CONFIG_JOYSTICK_WARRIOR=m -CONFIG_JOYSTICK_XPAD_FF=y -CONFIG_JOYSTICK_XPAD_LEDS=y -CONFIG_JOYSTICK_XPAD=m -CONFIG_JOYSTICK_ZHENHUA=m -# CONFIG_JSA1212 is not set -# CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG is not set -# CONFIG_JUMP_LABEL_FEATURE_CHECKS is not set -CONFIG_JUMP_LABEL=y -CONFIG_KALLSYMS_ALL=y -CONFIG_KALLSYMS=y -CONFIG_KARMA_PARTITION=y -# CONFIG_KASAN is not set -# CONFIG_KCOV is not set -CONFIG_KDB_CONTINUE_CATASTROPHIC=0 -CONFIG_KDB_DEFAULT_ENABLE=0x0 -CONFIG_KDB_KEYBOARD=y -# CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_LZMA is not set -# CONFIG_KERNEL_LZO is not set -# CONFIG_KEXEC_FILE is not set -CONFIG_KEXEC=y -# CONFIG_KEYBOARD_ADC is not set -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_CAP11XX is not set -# CONFIG_KEYBOARD_DLINK_DIR685 is not set -# CONFIG_KEYBOARD_GPIO is not set -# CONFIG_KEYBOARD_GPIO_POLLED is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_LM8333 is not set -# CONFIG_KEYBOARD_MATRIX is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MCS is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OMAP4 is not set -# CONFIG_KEYBOARD_OPENCORES is not set -CONFIG_KEYBOARD_PMIC8XXX=m -CONFIG_KEYBOARD_QT1070=m -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_SAMSUNG is not set -# CONFIG_KEYBOARD_SH_KEYSC is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_TCA8418 is not set -CONFIG_KEYBOARD_TM2_TOUCHKEY=m -# CONFIG_KEYBOARD_XTKBD is not set -CONFIG_KEY_DH_OPERATIONS=y -CONFIG_KEYS=y -CONFIG_KGDB_KDB=y -CONFIG_KGDB_LOW_LEVEL_TRAP=y -CONFIG_KGDB_SERIAL_CONSOLE=y -# CONFIG_KGDB_TESTS_ON_BOOT is not set -CONFIG_KGDB_TESTS=y -CONFIG_KGDB=y -CONFIG_KINGSUN_DONGLE=m -# CONFIG_KMX61 is not set -CONFIG_KPROBE_EVENTS=y -# CONFIG_KPROBES_SANITY_TEST is not set -CONFIG_KPROBES=y -CONFIG_KS0108_DELAY=2 -CONFIG_KS0108=m -CONFIG_KS0108_PORT=0x378 -# CONFIG_KS7010 is not set -# CONFIG_KS8842 is not set -# CONFIG_KS8851 is not set -# CONFIG_KS8851_MLL is not set -CONFIG_KS959_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KSM=y -CONFIG_KSZ884X_PCI=m -CONFIG_KVM_BOOK3S_64_HV=m -CONFIG_KVM_BOOK3S_64=m -CONFIG_KVM_BOOK3S_64_PR=m -# CONFIG_KVM_BOOK3S_HV_EXIT_TIMING is not set -# CONFIG_KVM_EXIT_TIMING is not set -CONFIG_KVM_GUEST=y -CONFIG_KVM_XICS=y -CONFIG_KXCJK1013=m -# CONFIG_KXSD9 is not set -CONFIG_L2TP_DEBUGFS=m -CONFIG_L2TP_ETH=m -CONFIG_L2TP_IP=m -CONFIG_L2TP=m -CONFIG_L2TP_V3=y -# CONFIG_LANCE is not set -# CONFIG_LAPB is not set -CONFIG_LATENCYTOP=y -# CONFIG_LATTICE_ECP3_CONFIG is not set -# CONFIG_LCD_AMS369FG06 is not set -CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_HX8357 is not set -# CONFIG_LCD_ILI922X is not set -# CONFIG_LCD_ILI9320 is not set -# CONFIG_LCD_L4F00242T03 is not set -# CONFIG_LCD_LD9040 is not set -# CONFIG_LCD_LMS283GF05 is not set -# CONFIG_LCD_LMS501KF03 is not set -# CONFIG_LCD_LTV350QV is not set -CONFIG_LCD_PLATFORM=m -# CONFIG_LCD_S6E63M0 is not set -# CONFIG_LCD_TDO24M is not set -# CONFIG_LCD_VGG2432A4 is not set -# CONFIG_LDM_DEBUG is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LEDS_AAT1290 is not set -# CONFIG_LEDS_BCM6328 is not set -# CONFIG_LEDS_BCM6358 is not set -# CONFIG_LEDS_BD2802 is not set -CONFIG_LEDS_BLINKM=m -CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y -CONFIG_LEDS_CLASS_FLASH=m -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_CLEVO_MAIL=m -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_GPIO is not set -# CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set -# CONFIG_LEDS_KTD2692 is not set -CONFIG_LEDS_LM3530=m -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_LM3642 is not set -# CONFIG_LEDS_LOCOMO is not set -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_LP3952=m -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_LP5562 is not set -# CONFIG_LEDS_LP55XX_COMMON is not set -# CONFIG_LEDS_LP8501 is not set -# CONFIG_LEDS_LP8860 is not set -CONFIG_LEDS_LT3593=m -CONFIG_LEDS_MLXCPLD=m -# CONFIG_LEDS_NET48XX is not set -CONFIG_LEDS_NIC78BX=m -# CONFIG_LEDS_OT200 is not set -# CONFIG_LEDS_PCA9532 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -CONFIG_LEDS_POWERNV=m -# CONFIG_LEDS_PWM is not set -CONFIG_LEDS_REGULATOR=m -# CONFIG_LEDS_S3C24XX is not set -# CONFIG_LEDS_SYSCON is not set -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_TLC591XX is not set -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_CAMERA=m -# CONFIG_LEDS_TRIGGER_CPU is not set -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m -CONFIG_LEDS_TRIGGER_DISK=y -CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_LEDS_TRIGGER_MTD=y -CONFIG_LEDS_TRIGGER_ONESHOT=m -CONFIG_LEDS_TRIGGER_PANIC=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_TRANSIENT=m -CONFIG_LEDS_USER=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m -CONFIG_LED_TRIGGER_PHY=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -CONFIG_LIB80211_CRYPT_WEP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_LIB80211=m -CONFIG_LIBCRC32C=m -CONFIG_LIBERTAS_CS=m -# CONFIG_LIBERTAS_DEBUG is not set -CONFIG_LIBERTAS=m -CONFIG_LIBERTAS_MESH=y -CONFIG_LIBERTAS_SDIO=m -# CONFIG_LIBERTAS_SPI is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_LIBERTAS_USB=m -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -# CONFIG_LIBIPW_DEBUG is not set -# CONFIG_LIBNVDIMM is not set -# CONFIG_LIDAR_LITE_V2 is not set -CONFIG_LIQUIDIO_VF=m -CONFIG_LIRC_BT829=m -CONFIG_LIRC_IMON=m -CONFIG_LIRC=m -CONFIG_LIRC_PARALLEL=m -CONFIG_LIRC_SERIAL=m -CONFIG_LIRC_SERIAL_TRANSMITTER=y -CONFIG_LIRC_SIR=m -CONFIG_LIRC_STAGING=y -CONFIG_LIRC_ZILOG=m -CONFIG_LITELINK_DONGLE=m -# CONFIG_LIVEPATCH is not set -# CONFIG_LKDTM is not set -# CONFIG_LLC2 is not set -CONFIG_LLC=m -CONFIG_LMP91000=m -# CONFIG_LNET is not set -# CONFIG_LOAD_UEFI_KEYS is not set -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_LOCKD=m -# CONFIG_LOCK_DOWN_KERNEL is not set -CONFIG_LOCKD_V4=y -CONFIG_LOCK_STAT=y -CONFIG_LOCK_TORTURE_TEST=m -CONFIG_LOCKUP_DETECTOR=y -CONFIG_LOG_BUF_SHIFT=18 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -# CONFIG_LOGFS is not set -CONFIG_LOGIG940_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_LOGITECH_FF=y -CONFIG_LOGIWHEELS_FF=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO=y -CONFIG_LOOPBACK_TARGET=m -CONFIG_LPARCFG=y -# CONFIG_LPC_ICH is not set -CONFIG_LP_CONSOLE=y -# CONFIG_LPC_SCH is not set -CONFIG_LPFC_NVME_INITIATOR=y -CONFIG_LPFC_NVME_TARGET=y -CONFIG_LSI_ET1011C_PHY=m -CONFIG_LSM_MMAP_MIN_ADDR=65536 -# CONFIG_LTC2485 is not set -# CONFIG_LTC2497 is not set -# CONFIG_LTC2632 is not set -# CONFIG_LTE_GDM724X is not set -# CONFIG_LTR501 is not set -# CONFIG_LUSTRE_FS is not set -CONFIG_LWTUNNEL_BPF=y -CONFIG_LWTUNNEL=y -CONFIG_LXT_PHY=m -# CONFIG_M62332 is not set -CONFIG_MA600_DONGLE=m -CONFIG_MAC80211_DEBUGFS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_MAC80211_HWSIM=m -CONFIG_MAC80211_LEDS=y -CONFIG_MAC80211=m -CONFIG_MAC80211_MESH=y -# CONFIG_MAC80211_MESSAGE_TRACING is not set -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC802154=m -CONFIG_MACB=m -CONFIG_MACB_PCI=m -CONFIG_MACB_USE_HWSTAMP=y -CONFIG_MAC_EMUMOUSEBTN=y -CONFIG_MACHZ_WDT=m -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_MAC_PARTITION=y -CONFIG_MACSEC=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_MAG3110 is not set -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 -CONFIG_MAGIC_SYSRQ_SERIAL=y -CONFIG_MAGIC_SYSRQ=y -# CONFIG_MAILBOX is not set -# CONFIG_MAILBOX_TEST is not set -# CONFIG_MANDATORY_FILE_LOCKING is not set -CONFIG_MANTIS_CORE=m -CONFIG_MARVELL_10G_PHY=m -CONFIG_MARVELL_PHY=m -# CONFIG_MATH_EMULATION is not set -# CONFIG_MAX1027 is not set -# CONFIG_MAX11100 is not set -# CONFIG_MAX1118 is not set -CONFIG_MAX1363=m -CONFIG_MAX30100=m -# CONFIG_MAX30102 is not set -# CONFIG_MAX44000 is not set -# CONFIG_MAX517 is not set -# CONFIG_MAX5481 is not set -# CONFIG_MAX5487 is not set -# CONFIG_MAX5821 is not set -# CONFIG_MAX63XX_WATCHDOG is not set -# CONFIG_MAX9611 is not set -# CONFIG_MAXIM_THERMOCOUPLE is not set -CONFIG_MAX_RAW_DEVS=8192 -CONFIG_MAXSMP=y -# CONFIG_MC3230 is not set -# CONFIG_MCB is not set -# CONFIG_MCE_AMD_INJ is not set -CONFIG_MCP2120_DONGLE=m -# CONFIG_MCP320X is not set -# CONFIG_MCP3422 is not set -# CONFIG_MCP4131 is not set -# CONFIG_MCP4531 is not set -# CONFIG_MCP4725 is not set -# CONFIG_MCP4922 is not set -CONFIG_MCS_FIR=m -# CONFIG_MCU_MPC8349EMITX is not set -CONFIG_MD_AUTODETECT=y -# CONFIG_MD_CLUSTER is not set -CONFIG_MD_FAULTY=m -CONFIG_MDIO_BCM_UNIMAC=m -CONFIG_MDIO_BITBANG=m -# CONFIG_MDIO_BUS_MUX_GPIO is not set -# CONFIG_MDIO_BUS_MUX is not set -# CONFIG_MDIO_BUS_MUX_MMIOREG is not set -CONFIG_MDIO_GPIO=m -# CONFIG_MDIO_HISI_FEMAC is not set -# CONFIG_MDIO_OCTEON is not set -# CONFIG_MDIO_THUNDER is not set -CONFIG_MD_LINEAR=m -CONFIG_MD_MULTIPATH=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID456=m -CONFIG_MD=y -CONFIG_MEDIA_ALTERA_CI=m -CONFIG_MEDIA_ANALOG_TV_SUPPORT=y -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_CEC_DEBUG=y -CONFIG_MEDIA_CEC_RC=y -CONFIG_MEDIA_CEC_SUPPORT=y -# CONFIG_MEDIA_CONTROLLER_DVB is not set -CONFIG_MEDIA_CONTROLLER=y -CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -CONFIG_MEDIA_PCI_SUPPORT=y -CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_MEDIA_RC_SUPPORT=y -# CONFIG_MEDIA_SDR_SUPPORT is not set -CONFIG_MEDIA_SUBDRV_AUTOSELECT=y -CONFIG_MEDIA_SUPPORT=m -# CONFIG_MEDIA_TUNER_MSI001 is not set -CONFIG_MEDIA_USB_SUPPORT=y -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_SAS=m -CONFIG_MEMCG_SWAP_ENABLED=y -CONFIG_MEMCG_SWAP=y -CONFIG_MEMCG=y -CONFIG_MEMORY_FAILURE=y -# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set -CONFIG_MEMORY_HOTPLUG=y -CONFIG_MEMORY_HOTREMOVE=y -# CONFIG_MEMORY is not set -CONFIG_MEM_SOFT_DIRTY=y -# CONFIG_MEMSTICK_DEBUG is not set -CONFIG_MEMSTICK_JMICRON_38X=m -CONFIG_MEMSTICK=m -CONFIG_MEMSTICK_R592=m -CONFIG_MEMSTICK_REALTEK_PCI=m -CONFIG_MEMSTICK_REALTEK_USB=m -CONFIG_MEMSTICK_TIFM_MS=m -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -# CONFIG_MEMTEST is not set -# CONFIG_MEN_A21_WDT is not set -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_MFD_88PM800 is not set -# CONFIG_MFD_88PM805 is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_AAT2870_CORE is not set -# CONFIG_MFD_ACT8945A is not set -# CONFIG_MFD_ARIZONA_I2C is not set -# CONFIG_MFD_ARIZONA is not set -# CONFIG_MFD_ARIZONA_SPI is not set -# CONFIG_MFD_AS3711 is not set -# CONFIG_MFD_AS3722 is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_MFD_ATMEL_FLEXCOM is not set -# CONFIG_MFD_ATMEL_HLCDC is not set -# CONFIG_MFD_AXP20X_I2C is not set -# CONFIG_MFD_AXP20X is not set -# CONFIG_MFD_BCM590XX is not set -CONFIG_MFD_CORE=m -# CONFIG_MFD_CPCAP is not set -# CONFIG_MFD_CROS_EC is not set -# CONFIG_MFD_CS5535 is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_DA9052_SPI is not set -# CONFIG_MFD_DA9055 is not set -# CONFIG_MFD_DA9062 is not set -# CONFIG_MFD_DA9063 is not set -# CONFIG_MFD_DA9150 is not set -# CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_HI6421_PMIC is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_KEMPLD is not set -# CONFIG_MFD_LM3533 is not set -# CONFIG_MFD_LP3943 is not set -# CONFIG_MFD_LP8788 is not set -# CONFIG_MFD_MAX14577 is not set -# CONFIG_MFD_MAX77620 is not set -# CONFIG_MFD_MAX77686 is not set -# CONFIG_MFD_MAX77693 is not set -# CONFIG_MFD_MAX77843 is not set -# CONFIG_MFD_MAX8907 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_MC13XXX_I2C is not set -# CONFIG_MFD_MC13XXX_SPI is not set -# CONFIG_MFD_MENF21BMC is not set -# CONFIG_MFD_MT6397 is not set -# CONFIG_MFD_PALMAS is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RETU is not set -# CONFIG_MFD_RK808 is not set -# CONFIG_MFD_RN5T618 is not set -# CONFIG_MFD_RT5033 is not set -CONFIG_MFD_RTSX_PCI=m -CONFIG_MFD_RTSX_USB=m -# CONFIG_MFD_SEC_CORE is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SKY81452 is not set -CONFIG_MFD_SM501_GPIO=y -CONFIG_MFD_SM501=m -# CONFIG_MFD_SMSC is not set -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_SYSCON is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_MFD_TI_AM335X_TSCADC is not set -# CONFIG_MFD_TI_LMU is not set -# CONFIG_MFD_TI_LP873X is not set -# CONFIG_MFD_TI_LP87565 is not set -# CONFIG_MFD_TIMBERDALE is not set -# CONFIG_MFD_TPS65086 is not set -# CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TPS65217 is not set -# CONFIG_MFD_TPS65218 is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS65912 is not set -# CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_TPS80031 is not set -CONFIG_MFD_VIPERBOARD=m -CONFIG_MFD_VX855=m -CONFIG_MFD_WL1273_CORE=m -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM831X is not set -# CONFIG_MFD_WM831X_SPI is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8350 is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MGCOGE is not set -# CONFIG_MICREL_KS8995MA is not set -CONFIG_MICREL_PHY=m -CONFIG_MICROCHIP_KSZ=m -CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m -CONFIG_MICROCHIP_PHY=m -CONFIG_MICROSEMI_PHY=m -CONFIG_MIGRATION=y -CONFIG_MII=m -CONFIG_MINIX_FS=m -CONFIG_MINIX_SUBPARTITION=y -CONFIG_MISC_FILESYSTEMS=y -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_L1OIP=m -CONFIG_MISDN=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_W6692=m -CONFIG_MKISS=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_EN_DCB=y -CONFIG_MLX4_EN=m -CONFIG_MLX4_INFINIBAND=m -CONFIG_MLX5_CORE_EN_DCB=y -CONFIG_MLX5_CORE_EN=y -CONFIG_MLX5_CORE_IPOIB=y -CONFIG_MLX5_CORE=m -# CONFIG_MLX5_EN_IPSEC is not set -# CONFIG_MLX5_FPGA is not set -CONFIG_MLX5_INFINIBAND=m -# CONFIG_MLX90614 is not set -CONFIG_MLX_CPLD_PLATFORM=m -CONFIG_MLXFW=m -CONFIG_MLXSW_CORE_HWMON=y -CONFIG_MLXSW_CORE=m -CONFIG_MLXSW_CORE_THERMAL=y -CONFIG_MLXSW_I2C=m -CONFIG_MLXSW_MINIMAL=m -CONFIG_MLXSW_PCI=m -CONFIG_MLXSW_SPECTRUM_DCB=y -CONFIG_MLXSW_SPECTRUM=m -CONFIG_MLXSW_SWITCHIB=m -CONFIG_MLXSW_SWITCHX2=m -# CONFIG_MMA7455_I2C is not set -# CONFIG_MMA7455_SPI is not set -CONFIG_MMA7660=m -# CONFIG_MMA8452 is not set -# CONFIG_MMA9551 is not set -# CONFIG_MMA9553 is not set -# CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_CB710=m -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC=m -# CONFIG_MMC_MTK is not set -CONFIG_MMC_REALTEK_PCI=m -CONFIG_MMC_REALTEK_USB=m -CONFIG_MMC_RICOH_MMC=y -CONFIG_MMC_SDHCI_ACPI=m -CONFIG_MMC_SDHCI_CADENCE=m -# CONFIG_MMC_SDHCI_F_SDH30 is not set -CONFIG_MMC_SDHCI=m -# CONFIG_MMC_SDHCI_OF_ARASAN is not set -# CONFIG_MMC_SDHCI_OF_AT91 is not set -# CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_SDHCI_PLTFM=m -CONFIG_MMC_SDHCI_XENON=m -CONFIG_MMC_SDRICOH_CS=m -# CONFIG_MMC_SPI is not set -# CONFIG_MMC_TEST is not set -CONFIG_MMC_TIFM_SD=m -# CONFIG_MMC_TOSHIBA_PCI is not set -# CONFIG_MMC_USDHI6ROL0 is not set -CONFIG_MMC_USHC=m -CONFIG_MMC_VIA_SDMMC=m -CONFIG_MMC_VUB300=m -CONFIG_MMC_WBSD=m -CONFIG_MMIOTRACE=y -CONFIG_MMU=y -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MODULE_SIG_ALL=y -# CONFIG_MODULE_SIG_FORCE is not set -CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" -# CONFIG_MODULE_SIG_SHA1 is not set -CONFIG_MODULE_SIG_SHA256=y -CONFIG_MODULE_SIG=y -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MOST is not set -CONFIG_MOUSE_APPLETOUCH=m -# CONFIG_MOUSE_ATIXL is not set -CONFIG_MOUSE_BCM5974=m -CONFIG_MOUSE_CYAPA=m -CONFIG_MOUSE_ELAN_I2C_I2C=y -CONFIG_MOUSE_ELAN_I2C=m -CONFIG_MOUSE_ELAN_I2C_SMBUS=y -# CONFIG_MOUSE_GPIO is not set -CONFIG_MOUSE_PS2_ELANTECH=y -CONFIG_MOUSE_PS2_SENTELIC=y -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_SERIAL=m -CONFIG_MOUSE_SYNAPTICS_I2C=m -CONFIG_MOUSE_SYNAPTICS_USB=m -CONFIG_MOUSE_VSXXXAA=m -CONFIG_MOVABLE_NODE=y -# CONFIG_MOXA_INTELLIO is not set -# CONFIG_MOXA_SMARTIO is not set -# CONFIG_MPC5121_ADS is not set -# CONFIG_MPIC_MSGR is not set -# CONFIG_MPL115_I2C is not set -# CONFIG_MPL115 is not set -# CONFIG_MPL115_SPI is not set -# CONFIG_MPL3115 is not set -CONFIG_MPLS_IPTUNNEL=m -CONFIG_MPLS_ROUTING=m -CONFIG_MPU3050_I2C=m -CONFIG_MQ_IOSCHED_DEADLINE=y -CONFIG_MQ_IOSCHED_KYBER=m -# CONFIG_MS5611 is not set -# CONFIG_MS5637 is not set -# CONFIG_MS_BLOCK is not set -CONFIG_MSDOS_FS=m -CONFIG_MSDOS_PARTITION=y -CONFIG_MSI_BITMAP_SELFTEST=y -# CONFIG_MSM_GCC_8994 is not set -CONFIG_MSPRO_BLOCK=m -CONFIG_MT7601U=m -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_AR7_PARTS is not set -# CONFIG_MTD_BLKDEVS is not set -# CONFIG_MTD_BLOCK2MTD is not set -# CONFIG_MTD_BLOCK is not set -# CONFIG_MTD_BLOCK_RO 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_CFI is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_DOCG3 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_JEDECPROBE is not set -# CONFIG_MTD_LPDDR is not set -CONFIG_MTD=m -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MCHP23K256 is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_NAND_DENALI_DT is not set -# CONFIG_MTD_NAND_DENALI_PCI is not set -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_NAND_ECC_BCH is not set -# CONFIG_MTD_NAND_FSL_ELBC is not set -# CONFIG_MTD_NAND_HISI504 is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_NAND_OMAP2 is not set -# CONFIG_MTD_NAND_OXNAS is not set -CONFIG_MTD_OF_PARTS=m -# CONFIG_MTD_ONENAND is not set -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_PARTITIONED_MASTER is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_PLATRAM is not set -# CONFIG_MTD_PMC551 is not set -CONFIG_MTD_POWERNV_FLASH=m -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_SPI_NOR is not set -# CONFIG_MTD_SST25L is not set -# CONFIG_MTD_SWAP is not set -# CONFIG_MTD_TESTS is not set -# CONFIG_MTD_TS5500 is not set -CONFIG_MTD_UBI_BEB_LIMIT=20 -# CONFIG_MTD_UBI_BLOCK is not set -# CONFIG_MTD_UBI_FASTMAP is not set -# CONFIG_MTD_UBI_GLUEBI is not set -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MULTIPLEXER=m -CONFIG_MUX_ADG792A=m -CONFIG_MUX_GPIO=m -CONFIG_MUX_MMIO=m -CONFIG_MVMDIO=m -CONFIG_MWAVE=m -CONFIG_MWIFIEX=m -CONFIG_MWIFIEX_PCIE=m -CONFIG_MWIFIEX_SDIO=m -CONFIG_MWIFIEX_USB=m -CONFIG_MWL8K=m -# CONFIG_MXC4005 is not set -# CONFIG_MXC6255 is not set -CONFIG_MYRI10GE_DCA=y -CONFIG_MYRI10GE=m -CONFIG_NAMESPACES=y -CONFIG_NATIONAL_PHY=m -CONFIG_NATSEMI=m -# CONFIG_NAU7802 is not set -# CONFIG_NBPFAXI_DMA is not set -CONFIG_NCPFS_EXTRAS=y -CONFIG_NCPFS_IOCTL_LOCKING=y -CONFIG_NCP_FS=m -CONFIG_NCPFS_NFS_NS=y -CONFIG_NCPFS_NLS=y -CONFIG_NCPFS_OS2_NS=y -CONFIG_NCPFS_PACKET_SIGNING=y -CONFIG_NCPFS_SMALLDOS=y -CONFIG_NCPFS_STRONG=y -# CONFIG_ND_BLK is not set -CONFIG_NE2K_PCI=m -# CONFIG_NET_9P_DEBUG is not set -CONFIG_NET_9P=m -CONFIG_NET_9P_RDMA=m -CONFIG_NET_9P_VIRTIO=m -CONFIG_NET_9P_XEN=m -CONFIG_NET_ACT_BPF=m -CONFIG_NET_ACT_CONNMARK=m -CONFIG_NET_ACT_CSUM=m -CONFIG_NET_ACT_GACT=m -CONFIG_NET_ACT_IFE=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_SAMPLE=m -CONFIG_NET_ACT_SIMP=m -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_ACT_SKBMOD=m -CONFIG_NET_ACT_TUNNEL_KEY=m -CONFIG_NET_ACT_VLAN=m -CONFIG_NET_CADENCE=y -CONFIG_NET_CALXEDA_XGMAC=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_BPF=m -CONFIG_NET_CLS_CGROUP=y -CONFIG_NET_CLS_FLOWER=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_IND=y -CONFIG_NET_CLS_MATCHALL=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_U32=m -CONFIG_NET_CLS=y -CONFIG_NETCONSOLE_DYNAMIC=y -CONFIG_NETCONSOLE=m -CONFIG_NET_CORE=y -# CONFIG_NET_DCCPPROBE is not set -CONFIG_NETDEVICES=y -CONFIG_NET_DEVLINK=m -CONFIG_NET_DROP_MONITOR=y -CONFIG_NET_DSA_BCM_SF2=m -CONFIG_NET_DSA_HWMON=y -CONFIG_NET_DSA_LOOP=m -CONFIG_NET_DSA=m -CONFIG_NET_DSA_MT7530=m -CONFIG_NET_DSA_MV88E6060=m -CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y -CONFIG_NET_DSA_MV88E6XXX=m -CONFIG_NET_DSA_QCA8K=m -CONFIG_NET_DSA_SMSC_LAN9303_I2C=m -CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m -CONFIG_NET_EMATCH_CANID=m -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_IPSET=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH=y -CONFIG_NET_FC=y -CONFIG_NETFILTER_ADVANCED=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_INGRESS=y -CONFIG_NETFILTER_NETLINK_ACCT=m -# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_XTABLES=y -CONFIG_NETFILTER_XT_CONNMARK=m -CONFIG_NETFILTER_XT_MARK=m -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_BPF=m -CONFIG_NETFILTER_XT_MATCH_CGROUP=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_CPU=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ECN=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPCOMP=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m -CONFIG_NETFILTER_XT_MATCH_L2TP=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_NFACCT=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_NAT=m -CONFIG_NETFILTER_XT_SET=m -CONFIG_NETFILTER_XT_TARGET_AUDIT=m -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m -CONFIG_NETFILTER_XT_TARGET_CT=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HMARK=m -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_LOG=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NETMAP=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_REDIRECT=m -CONFIG_NETFILTER_XT_TARGET_SECMARK=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m -CONFIG_NETFILTER_XT_TARGET_TEE=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER=y -CONFIG_NET_FOU_IP_TUNNELS=y -CONFIG_NET_FOU=m -CONFIG_NET_IFE=m -CONFIG_NET_IFE_SKBMARK=m -CONFIG_NET_IFE_SKBPRIO=m -CONFIG_NET_IFE_SKBTCINDEX=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPIP=m -CONFIG_NET_IPVTI=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_NET_L3_MASTER_DEV=y -CONFIG_NETLABEL=y -CONFIG_NETLINK_DIAG=m -CONFIG_NET_MPLS_GSO=m -CONFIG_NET_NCSI=y -CONFIG_NET_NS=y -CONFIG_NET_PACKET_ENGINE=y -CONFIG_NET_PKTGEN=m -CONFIG_NET_POLL_CONTROLLER=y -CONFIG_NETROM=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_CHOKE=m -CONFIG_NET_SCH_CODEL=m -# CONFIG_NET_SCH_DEFAULT is not set -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_FQ_CODEL=y -CONFIG_NET_SCH_FQ=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_HHF=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_SCH_MQPRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_PIE=m -CONFIG_NET_SCH_PLUG=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_QFQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFB=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCTPPROBE=m -CONFIG_NET_SWITCHDEV=y -# CONFIG_NET_TCPPROBE is not set -CONFIG_NET_TEAM=m -CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m -CONFIG_NET_TEAM_MODE_BROADCAST=m -CONFIG_NET_TEAM_MODE_LOADBALANCE=m -CONFIG_NET_TEAM_MODE_RANDOM=m -CONFIG_NET_TEAM_MODE_ROUNDROBIN=m -CONFIG_NET_TULIP=y -CONFIG_NET_VENDOR_3COM=y -CONFIG_NET_VENDOR_8390=y -CONFIG_NET_VENDOR_ADAPTEC=y -CONFIG_NET_VENDOR_AGERE=y -# CONFIG_NET_VENDOR_ALACRITECH is not set -CONFIG_NET_VENDOR_ALTEON=y -CONFIG_NET_VENDOR_AMAZON=y -CONFIG_NET_VENDOR_AMD=y -CONFIG_NET_VENDOR_AQUANTIA=y -CONFIG_NET_VENDOR_ARC=y -CONFIG_NET_VENDOR_ATHEROS=y -# CONFIG_NET_VENDOR_AURORA is not set -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_NET_VENDOR_CAVIUM is not set -CONFIG_NET_VENDOR_CHELSIO=y -CONFIG_NET_VENDOR_CISCO=y -CONFIG_NET_VENDOR_DEC=y -CONFIG_NET_VENDOR_DLINK=y -CONFIG_NET_VENDOR_EMULEX=y -CONFIG_NET_VENDOR_EXAR=y -# CONFIG_NET_VENDOR_EZCHIP is not set -# CONFIG_NET_VENDOR_FARADAY is not set -# CONFIG_NET_VENDOR_FUJITSU is not set -# CONFIG_NET_VENDOR_HISILICON is not set -# CONFIG_NET_VENDOR_HP is not set -# CONFIG_NET_VENDOR_I825XX is not set -CONFIG_NET_VENDOR_IBM=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_NET_VENDOR_MARVELL=y -CONFIG_NET_VENDOR_MICREL=y -# CONFIG_NET_VENDOR_MICROCHIP is not set -CONFIG_NET_VENDOR_MYRI=y -CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NET_VENDOR_NVIDIA=y -CONFIG_NET_VENDOR_OKI=y -# CONFIG_NET_VENDOR_PASEMI is not set -CONFIG_NET_VENDOR_QLOGIC=y -# CONFIG_NET_VENDOR_QUALCOMM is not set -CONFIG_NET_VENDOR_RDC=y -CONFIG_NET_VENDOR_REALTEK=y -# CONFIG_NET_VENDOR_RENESAS is not set -CONFIG_NET_VENDOR_ROCKER=y -# CONFIG_NET_VENDOR_SAMSUNG is not set -# CONFIG_NET_VENDOR_SEEQ is not set -CONFIG_NET_VENDOR_SILAN=y -CONFIG_NET_VENDOR_SIS=y -CONFIG_NET_VENDOR_SMSC=y -# CONFIG_NET_VENDOR_SOLARFLARE is not set -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_NET_VENDOR_SUN=y -# CONFIG_NET_VENDOR_SYNOPSYS is not set -CONFIG_NET_VENDOR_TEHUTI=y -CONFIG_NET_VENDOR_TI=y -# CONFIG_NET_VENDOR_TOSHIBA is not set -CONFIG_NET_VENDOR_VIA=y -CONFIG_NET_VENDOR_WIZNET=y -# CONFIG_NET_VENDOR_XILINX is not set -CONFIG_NET_VENDOR_XIRCOM=y -CONFIG_NET_VRF=m -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETXEN_NIC=m -CONFIG_NET=y -CONFIG_NEW_LEDS=y -CONFIG_NFC_DIGITAL=m -# CONFIG_NFC_FDP is not set -CONFIG_NFC_HCI=m -CONFIG_NFC=m -CONFIG_NFC_MICROREAD_I2C=m -CONFIG_NFC_MICROREAD=m -# CONFIG_NFC_MRVL_I2C is not set -CONFIG_NFC_MRVL=m -# CONFIG_NFC_MRVL_SPI is not set -CONFIG_NFC_MRVL_USB=m -CONFIG_NFC_NCI=m -# CONFIG_NFC_NCI_SPI is not set -# CONFIG_NFC_NCI_UART is not set -CONFIG_NFC_NXP_NCI_I2C=m -CONFIG_NFC_NXP_NCI=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_PPTP=m -# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set -CONFIG_NF_CONNTRACK_PROCFS=y -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SECMARK=y -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_SNMP=m -CONFIG_NF_CONNTRACK_TFTP=m -# CONFIG_NF_CONNTRACK_TIMEOUT is not set -CONFIG_NF_CONNTRACK_TIMESTAMP=y -CONFIG_NF_CONNTRACK_ZONES=y -CONFIG_NFC_PN533_I2C=m -CONFIG_NFC_PN533=m -CONFIG_NFC_PN533_USB=m -CONFIG_NFC_PN544_I2C=m -CONFIG_NFC_PN544=m -CONFIG_NFC_PORT100=m -# CONFIG_NFC_S3FWRN5_I2C is not set -CONFIG_NFC_SHDLC=y -CONFIG_NFC_SIM=m -CONFIG_NFC_ST21NFCA_I2C=m -CONFIG_NFC_ST21NFCA=m -# CONFIG_NFC_ST95HF is not set -# CONFIG_NFC_ST_NCI_I2C is not set -# CONFIG_NFC_ST_NCI is not set -# CONFIG_NFC_ST_NCI_SPI is not set -CONFIG_NF_CT_NETLINK_HELPER=m -CONFIG_NF_CT_NETLINK=m -# CONFIG_NF_CT_NETLINK_TIMEOUT is not set -CONFIG_NF_CT_PROTO_DCCP=y -CONFIG_NF_CT_PROTO_SCTP=y -CONFIG_NF_CT_PROTO_UDPLITE=y -CONFIG_NFC_TRF7970A=m -CONFIG_NF_DUP_IPV4=m -CONFIG_NF_DUP_IPV6=m -CONFIG_NF_DUP_NETDEV=m -CONFIG_NF_LOG_ARP=m -CONFIG_NF_LOG_BRIDGE=m -CONFIG_NF_LOG_IPV4=m -CONFIG_NF_LOG_IPV6=m -CONFIG_NF_LOG_NETDEV=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NFP_APP_FLOWER=y -# CONFIG_NFP_DEBUG is not set -CONFIG_NFP=m -# CONFIG_NFP_NET_DEBUG is not set -CONFIG_NFP_NETVF=m -CONFIG_NF_REJECT_IPV6=m -CONFIG_NFSD_BLOCKLAYOUT=y -CONFIG_NFSD_FAULT_INJECTION=y -CONFIG_NFSD_FLEXFILELAYOUT=y -CONFIG_NFSD=m -CONFIG_NFSD_PNFS=y -CONFIG_NFSD_SCSILAYOUT=y -CONFIG_NFSD_V3_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V4_SECURITY_LABEL=y -CONFIG_NFSD_V4=y -CONFIG_NFS_FSCACHE=y -CONFIG_NFS_FS=m -CONFIG_NF_SOCKET_IPV4=m -CONFIG_NF_SOCKET_IPV6=m -CONFIG_NFS_SWAP=y -# CONFIG_NFS_USE_LEGACY_DNS is not set -# CONFIG_NFS_V2 is not set -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V3=m -CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" -# CONFIG_NFS_V4_1_MIGRATION is not set -CONFIG_NFS_V4_1=y -CONFIG_NFS_V4_2=y -CONFIG_NFS_V4=m -CONFIG_NF_TABLES_ARP=m -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NF_TABLES_INET=m -CONFIG_NF_TABLES_IPV4=m -CONFIG_NF_TABLES_IPV6=m -CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_NETDEV=m -CONFIG_NFT_BRIDGE_META=m -CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NFT_CHAIN_NAT_IPV4=m -CONFIG_NFT_CHAIN_NAT_IPV6=m -CONFIG_NFT_CHAIN_ROUTE_IPV4=m -CONFIG_NFT_CHAIN_ROUTE_IPV6=m -CONFIG_NFT_COMPAT=m -CONFIG_NFT_COUNTER=m -CONFIG_NFT_CT=m -CONFIG_NFT_DUP_IPV4=m -CONFIG_NFT_DUP_IPV6=m -CONFIG_NFT_DUP_NETDEV=m -CONFIG_NFT_EXTHDR=m -CONFIG_NFT_FIB_INET=m -CONFIG_NFT_FIB_IPV4=m -CONFIG_NFT_FIB_IPV6=m -CONFIG_NFT_FWD_NETDEV=m -CONFIG_NFT_HASH=m -CONFIG_NFT_LIMIT=m -# CONFIG_NFTL is not set -CONFIG_NFT_LOG=m -CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_MASQ=m -CONFIG_NFT_META=m -CONFIG_NFT_NAT=m -CONFIG_NFT_NUMGEN=m -CONFIG_NFT_OBJREF=m -CONFIG_NFT_QUEUE=m -CONFIG_NFT_QUOTA=m -CONFIG_NFT_RBTREE=m -CONFIG_NFT_REDIR_IPV4=m -CONFIG_NFT_REDIR_IPV6=m -CONFIG_NFT_REDIR=m -CONFIG_NFT_REJECT_IPV4=m -CONFIG_NFT_REJECT=m -CONFIG_NFT_RT=m -CONFIG_NFT_SET_BITMAP=m -CONFIG_NFT_SET_HASH=m -CONFIG_NFT_SET_RBTREE=m -CONFIG_N_GSM=m -CONFIG_N_HDLC=m -# CONFIG_NI65 is not set -# CONFIG_NI903X_WDT is not set -CONFIG_NILFS2_FS=m -CONFIG_NIU=m -# CONFIG_NL80211_TESTMODE is not set -CONFIG_NL80211=y -CONFIG_NLMON=m -CONFIG_NLS_ASCII=y -CONFIG_NLS_CODEPAGE_1250=m -CONFIG_NLS_CODEPAGE_1251=m -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_737=m -CONFIG_NLS_CODEPAGE_775=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_CODEPAGE_852=m -CONFIG_NLS_CODEPAGE_855=m -CONFIG_NLS_CODEPAGE_857=m -CONFIG_NLS_CODEPAGE_860=m -CONFIG_NLS_CODEPAGE_861=m -CONFIG_NLS_CODEPAGE_862=m -CONFIG_NLS_CODEPAGE_863=m -CONFIG_NLS_CODEPAGE_864=m -CONFIG_NLS_CODEPAGE_865=m -CONFIG_NLS_CODEPAGE_866=m -CONFIG_NLS_CODEPAGE_869=m -CONFIG_NLS_CODEPAGE_874=m -CONFIG_NLS_CODEPAGE_932=m -CONFIG_NLS_CODEPAGE_936=m -CONFIG_NLS_CODEPAGE_949=m -CONFIG_NLS_CODEPAGE_950=m -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_ISO8859_13=m -CONFIG_NLS_ISO8859_14=m -CONFIG_NLS_ISO8859_15=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_ISO8859_2=m -CONFIG_NLS_ISO8859_3=m -CONFIG_NLS_ISO8859_4=m -CONFIG_NLS_ISO8859_5=m -CONFIG_NLS_ISO8859_6=m -CONFIG_NLS_ISO8859_7=m -CONFIG_NLS_ISO8859_8=m -CONFIG_NLS_ISO8859_9=m -CONFIG_NLS_KOI8_R=m -CONFIG_NLS_KOI8_U=m -CONFIG_NLS_MAC_CELTIC=m -CONFIG_NLS_MAC_CENTEURO=m -CONFIG_NLS_MAC_CROATIAN=m -CONFIG_NLS_MAC_CYRILLIC=m -CONFIG_NLS_MAC_GAELIC=m -CONFIG_NLS_MAC_GREEK=m -CONFIG_NLS_MAC_ICELAND=m -CONFIG_NLS_MAC_INUIT=m -CONFIG_NLS_MAC_ROMANIAN=m -CONFIG_NLS_MAC_ROMAN=m -CONFIG_NLS_MAC_TURKISH=m -CONFIG_NLS_UTF8=m -CONFIG_NLS=y -CONFIG_NMI_LOG_BUF_SHIFT=13 -CONFIG_NO_HZ=y -CONFIG_NOP_USB_XCEIV=m -CONFIG_NORTEL_HERMES=m -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -CONFIG_NOUVEAU_DEBUG=5 -CONFIG_NOUVEAU_DEBUG_DEFAULT=3 -CONFIG_NOZOMI=m -CONFIG_NR_CPUS=1024 -CONFIG_NR_DEV_DAX=32768 -CONFIG_NR_IRQS=512 -CONFIG_NS83820=m -CONFIG_NSC_FIR=m -CONFIG_NTB_IDT=m -# CONFIG_NTB is not set -# CONFIG_NTFS_FS is not set -CONFIG_NTP_PPS=y -CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y -CONFIG_NUMA_BALANCING=y -CONFIG_NUMA=y -CONFIG_NVME_FC=m -CONFIG_NVMEM=m -CONFIG_NVME_RDMA=m -CONFIG_NVME_TARGET_FCLOOP=m -CONFIG_NVME_TARGET_FC=m -CONFIG_NVME_TARGET_LOOP=m -CONFIG_NVME_TARGET=m -CONFIG_NVME_TARGET_RDMA=m -# CONFIG_NVM is not set -# CONFIG_NVRAM is not set -# CONFIG_OCFS2_DEBUG_FS is not set -# CONFIG_OCFS2_DEBUG_MASKLOG is not set -CONFIG_OCFS2_FS=m -CONFIG_OCFS2_FS_O2CB=m -# CONFIG_OCFS2_FS_STATS is not set -CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m -# CONFIG_OF_OVERLAY is not set -# CONFIG_OF_UNITTEST is not set -CONFIG_OLD_BELKIN_DONGLE=m -# CONFIG_OMFS_FS is not set -CONFIG_OPAL_PRD=m -CONFIG_OPENVSWITCH_GENEVE=m -CONFIG_OPENVSWITCH_GRE=m -CONFIG_OPENVSWITCH=m -CONFIG_OPENVSWITCH_VXLAN=m -# CONFIG_OPROFILE is not set -CONFIG_OPT3001=m -CONFIG_OPTIMIZE_INLINING=y -CONFIG_OPTPROBES=y -CONFIG_ORANGEFS_FS=m -CONFIG_ORINOCO_USB=m -CONFIG_OSF_PARTITION=y -# CONFIG_OVERLAY_FS_INDEX is not set -CONFIG_OVERLAY_FS=m -# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set -CONFIG_P54_COMMON=m -CONFIG_P54_PCI=m -# CONFIG_P54_SPI is not set -CONFIG_P54_USB=m -CONFIG_PA12203001=m -CONFIG_PACKET_DIAG=m -CONFIG_PACKET=y -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_PANEL is not set -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_TIMEOUT=0 -CONFIG_PANTHERLORD_FF=y -# CONFIG_PARIDE is not set -CONFIG_PARMAN=m -# CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC is not set -CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -# CONFIG_PATA_ARASAN_CF is not set -CONFIG_PATA_ARTOP=m -# CONFIG_PATA_ATIIXP is not set -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -# CONFIG_PATA_CYPRESS is not set -CONFIG_PATA_EFAR=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -# CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m -# CONFIG_PATA_LEGACY is not set -CONFIG_PATA_MARVELL=m -# CONFIG_PATA_MPIIX is not set -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -# CONFIG_PATA_OLDPIIX is not set -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m -# CONFIG_PATA_PLATFORM is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -# CONFIG_PATA_RZ1000 is not set -# CONFIG_PATA_SC1200 is not set -# CONFIG_PATA_SCH is not set -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m -# CONFIG_PC104 is not set -# CONFIG_PC87413_WDT is not set -CONFIG_PCCARD=y -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_PCH_GBE is not set -# CONFIG_PCI_DEBUG is not set -CONFIG_PCIEAER_INJECT=m -CONFIG_PCIEAER=y -# CONFIG_PCIEASPM_DEBUG is not set -CONFIG_PCIEASPM=y -CONFIG_PCIE_DPC=y -# CONFIG_PCIE_DW_PLAT is not set -CONFIG_PCIE_ECRC=y -# CONFIG_PCI_ENDPOINT is not set -# CONFIG_PCI_ENDPOINT_TEST is not set -# CONFIG_PCIEPORTBUS is not set -CONFIG_PCIE_PTM=y -CONFIG_PCI_HERMES=m -CONFIG_PCI_IOV=y -# CONFIG_PCI_MSI_IRQ_DOMAIN is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_PASID=y -CONFIG_PCIPCWATCHDOG=m -CONFIG_PCI_PRI=y -# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set -CONFIG_PCI_STUB=y -CONFIG_PCI_SW_SWITCHTEC=m -CONFIG_PCI=y -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_AXNET=m -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_HERMES=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_PCNET=m -# CONFIG_PCMCIA_RAYCS is not set -CONFIG_PCMCIA_SMC91C92=m -# CONFIG_PCMCIA_SPECTRUM is not set -# CONFIG_PCMCIA_WL3501 is not set -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_PCMCIA=y -CONFIG_PCNET32=m -CONFIG_PD6729=m -# CONFIG_PDA_POWER is not set -CONFIG_PDC_ADMA=m -# CONFIG_PERCPU_STATS is not set -# CONFIG_PERCPU_TEST is not set -CONFIG_PERF_EVENTS=y -CONFIG_PERSISTENT_KEYRINGS=y -# CONFIG_PGTABLE_MAPPING is not set -# CONFIG_PHANTOM is not set -# CONFIG_PHONE is not set -# CONFIG_PHONET is not set -# CONFIG_PHY_CPCAP_USB is not set -CONFIG_PHYLIB=y -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_QCOM_USB_HSIC is not set -# CONFIG_PHY_QCOM_USB_HS is not set -# CONFIG_PHY_ST_SPEAR1310_MIPHY is not set -# CONFIG_PHY_ST_SPEAR1340_MIPHY is not set -# CONFIG_PHY_TUSB1210 is not set -CONFIG_PID_NS=y -# CONFIG_PINCONF is not set -# CONFIG_PINCTRL_CANNONLAKE is not set -# CONFIG_PINCTRL_IPQ8074 is not set -# CONFIG_PINCTRL is not set -# CONFIG_PINCTRL_MCP23S08 is not set -# CONFIG_PINCTRL_SX150X is not set -# CONFIG_PINMUX is not set -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -# CONFIG_PLATFORM_SI4713 is not set -# CONFIG_PLIP is not set -CONFIG_PLX_HERMES=m -CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_PM_AUTOSLEEP is not set -CONFIG_PMBUS=m -CONFIG_PM_DEBUG=y -# CONFIG_PM_DEVFREQ_EVENT is not set -CONFIG_PM_DEVFREQ=y -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set -CONFIG_PM_STD_PARTITION="" -CONFIG_PM_TEST_SUSPEND=y -CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TRACE=y -# CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=y -CONFIG_PNFS_BLOCK=m -CONFIG_PNFS_OBJLAYOUT=m -CONFIG_POSIX_MQUEUE=y -CONFIG_POWER7_CPU=y -# CONFIG_POWER_AVS is not set -CONFIG_POWERCAP=y -CONFIG_POWERNV_CPUFREQ=y -CONFIG_POWERNV_CPUIDLE=y -# CONFIG_POWERNV_OP_PANEL is not set -# CONFIG_POWER_RESET_BRCMKONA is not set -# CONFIG_POWER_RESET_BRCMSTB is not set -CONFIG_POWER_RESET_GPIO_RESTART=y -CONFIG_POWER_RESET_GPIO=y -# CONFIG_POWER_RESET_LTC2952 is not set -# CONFIG_POWER_RESET_RESTART is not set -# CONFIG_POWER_RESET_SYSCON is not set -# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set -CONFIG_POWER_RESET=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_POWER_SUPPLY=y -CONFIG_PPC_64K_PAGES=y -CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y -CONFIG_PPC64=y -# CONFIG_PPC_82xx is not set -# CONFIG_PPC_83xx is not set -# CONFIG_PPC_86xx is not set -# CONFIG_PPC_CELL is not set -CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y -CONFIG_PPC_DENORMALISATION=y -CONFIG_PPC_DISABLE_WERROR=y -CONFIG_PPC_DT_CPU_FTRS=y -# CONFIG_PPC_EARLY_DEBUG is not set -CONFIG_PPC_EMULATED_STATS=y -# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set -# CONFIG_PPC_IBM_CELL_BLADE is not set -# CONFIG_PPC_ICSWX_PID is not set -# CONFIG_PPC_ICSWX_USE_SIGILL is not set -CONFIG_PPC_ICSWX=y -# CONFIG_PPC_MAPLE is not set -# CONFIG_PPC_MPC5200_LPBFIFO is not set -CONFIG_PPC_OF_BOOT_TRAMPOLINE=y -# CONFIG_PPC_PASEMI is not set -# CONFIG_PPC_PMAC64 is not set -# CONFIG_PPC_PMAC is not set -CONFIG_PPC_POWERNV=y -# CONFIG_PPC_PS3 is not set -CONFIG_PPC_PSERIES=y -# CONFIG_PPC_PTDUMP is not set -CONFIG_PPC_RADIX_MMU=y -CONFIG_PPC_SMLPAR=y -CONFIG_PPC_SPLPAR=y -CONFIG_PPC_SUBPAGE_PROT=y -CONFIG_PPC_TRANSACTIONAL_MEM=y -CONFIG_PPC=y -CONFIG_PPDEV=m -CONFIG_PPP_ASYNC=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP=m -CONFIG_PPP_MPPE=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPPOATM=m -CONFIG_PPPOE=m -CONFIG_PPPOL2TP=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPS_CLIENT_GPIO=m -# CONFIG_PPS_CLIENT_KTIMER is not set -CONFIG_PPS_CLIENT_LDISC=m -# CONFIG_PPS_DEBUG is not set -CONFIG_PPS=m -CONFIG_PPTP=m -# CONFIG_PREEMPT is not set -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_PRINTER=m -CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=12 -CONFIG_PRINTK_TIME=y -# CONFIG_PRINT_QUOTA_WARNING is not set -CONFIG_PRINT_STACK_DEPTH=64 -# CONFIG_PRISM2_USB is not set -# CONFIG_PRISM54 is not set -CONFIG_PROC_CHILDREN=y -CONFIG_PROC_EVENTS=y -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_PROC_PID_CPUSET=y -CONFIG_PROC_VMCORE=y -CONFIG_PROFILING=y -CONFIG_PROVE_LOCKING=y -# CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_PROVE_RCU=y -# CONFIG_PS3_VRAM is not set -CONFIG_PSAMPLE=m -CONFIG_PSERIES_CPUIDLE=y -CONFIG_PSERIES_ENERGY=m -# CONFIG_PSTORE_CONSOLE is not set -# CONFIG_PSTORE_FTRACE is not set -# CONFIG_PSTORE_PMSG is not set -CONFIG_PSTORE_RAM=m -CONFIG_PSTORE=y -CONFIG_PTP_1588_CLOCK=m -CONFIG_PTP_1588_CLOCK_PCH=m -# CONFIG_PWM_FSL_FTM is not set -CONFIG_PWM_HIBVT=m -# CONFIG_PWM_PCA9685 is not set -CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -CONFIG_PWRSEQ_SD8787=m -CONFIG_PWRSEQ_SIMPLE=m -# CONFIG_QCA7000 is not set -# CONFIG_QCA7000_SPI is not set -# CONFIG_QCA7000_UART is not set -# CONFIG_QCOM_EMAC is not set -# CONFIG_QCOM_HIDMA is not set -# CONFIG_QCOM_HIDMA_MGMT is not set -CONFIG_QEDE=m -CONFIG_QEDF=m -CONFIG_QEDI=m -CONFIG_QED=m -CONFIG_QED_SRIOV=y -# CONFIG_QFMT_V1 is not set -CONFIG_QFMT_V2=y -CONFIG_QLA3XXX=m -CONFIG_QLCNIC_DCB=y -CONFIG_QLCNIC_HWMON=y -CONFIG_QLCNIC=m -CONFIG_QLCNIC_SRIOV=y -CONFIG_QLGE=m -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX6FS_FS is not set -CONFIG_QSEMI_PHY=m -CONFIG_QTNFMAC_PEARL_PCIE=m -CONFIG_QUOTACTL=y -CONFIG_QUOTA_DEBUG=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_QUOTA=y -CONFIG_R3964=m -CONFIG_R6040=m -CONFIG_R8169=m -# CONFIG_R8188EU is not set -CONFIG_R8712U=m -CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) -CONFIG_RADIO_ADAPTERS=y -CONFIG_RADIO_AZTECH=m -CONFIG_RADIO_CADET=m -CONFIG_RADIO_GEMTEK=m -CONFIG_RADIO_MAXIRADIO=m -# CONFIG_RADIO_MIROPCM20 is not set -CONFIG_RADIO_RTRACK2=m -CONFIG_RADIO_RTRACK=m -CONFIG_RADIO_SAA7706H=m -CONFIG_RADIO_SF16FMI=m -CONFIG_RADIO_SF16FMR2=m -CONFIG_RADIO_SHARK2=m -CONFIG_RADIO_SHARK=m -CONFIG_RADIO_SI470X=y -CONFIG_RADIO_SI4713=m -CONFIG_RADIO_TEA5764=m -# CONFIG_RADIO_TEF6862 is not set -CONFIG_RADIO_TERRATEC=m -CONFIG_RADIO_TRUST=m -CONFIG_RADIO_TYPHOON=m -CONFIG_RADIO_WL1273=m -CONFIG_RADIO_ZOLTRIX=m -CONFIG_RAID_ATTRS=m -# CONFIG_RANDOM32_SELFTEST is not set -# CONFIG_RAPIDIO is not set -CONFIG_RAS_CEC=y -CONFIG_RAW_DRIVER=y -# CONFIG_RBTREE_TEST is not set -CONFIG_RC_ATI_REMOTE=m -CONFIG_RC_CORE=m -CONFIG_RC_DECODERS=y -CONFIG_RC_DEVICES=y -CONFIG_RC_LOOPBACK=m -CONFIG_RC_MAP=m -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_RCU_EQS_DEBUG is not set -# CONFIG_RCU_EXPERT is not set -CONFIG_RCU_FANOUT=64 -CONFIG_RCU_FANOUT_LEAF=16 -CONFIG_RCU_FAST_NO_HZ=y -CONFIG_RCU_KTHREAD_PRIO=0 -CONFIG_RCU_NOCB_CPU_ALL=y -CONFIG_RCU_NOCB_CPU=y -# CONFIG_RCU_PERF_TEST is not set -CONFIG_RCU_TORTURE_TEST=m -# CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP is not set -CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 -# CONFIG_RCU_TORTURE_TEST_SLOW_INIT is not set -# CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RD_BZIP2=y -CONFIG_RD_GZIP=y -CONFIG_RD_LZ4=y -CONFIG_RD_LZMA=y -CONFIG_RD_LZO=y -CONFIG_RDMA_RXE=m -# CONFIG_RDS_DEBUG is not set -CONFIG_RDS=m -CONFIG_RDS_RDMA=m -CONFIG_RDS_TCP=m -CONFIG_RD_XZ=y -# CONFIG_READABLE_ASM is not set -CONFIG_REALTEK_AUTOPM=y -CONFIG_REALTEK_PHY=m -CONFIG_REFCOUNT_FULL=y -CONFIG_REGMAP_I2C=m -CONFIG_REGMAP=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR is not set -# CONFIG_REGULATOR_TPS65132 is not set -CONFIG_REGULATOR_VCTRL=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_FS=m -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_PROC_INFO=y -CONFIG_RELAY=y -# CONFIG_RELOCATABLE_TEST is not set -CONFIG_RELOCATABLE=y -CONFIG_REMOTEPROC=m -# CONFIG_RESET_TI_SYSCON is not set -# CONFIG_RFD_FTL is not set -CONFIG_RFKILL_GPIO=m -CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL=m -CONFIG_RING_BUFFER_BENCHMARK=m -# CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_RIO is not set -CONFIG_RMI4_CORE=m -CONFIG_RMI4_F03=y -CONFIG_RMI4_F11=y -CONFIG_RMI4_F12=y -CONFIG_RMI4_F30=y -CONFIG_RMI4_F34=y -# CONFIG_RMI4_F54 is not set -CONFIG_RMI4_F55=y -CONFIG_RMI4_I2C=m -CONFIG_RMI4_SMB=m -CONFIG_RMI4_SPI=m -CONFIG_ROCKER=m -CONFIG_ROCKETPORT=m -CONFIG_ROMFS_FS=m -CONFIG_ROSE=m -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPMSG_CHAR is not set -# CONFIG_RPMSG_QCOM_GLINK_RPM is not set -CONFIG_RPR0521=m -CONFIG_RSI_91X=m -CONFIG_RSI_DEBUGFS=y -CONFIG_RSI_SDIO=m -CONFIG_RSI_USB=m -CONFIG_RT2400PCI=m -CONFIG_RT2500PCI=m -CONFIG_RT2500USB=m -CONFIG_RT2800PCI=m -CONFIG_RT2800PCI_RT3290=y -CONFIG_RT2800PCI_RT33XX=y -CONFIG_RT2800PCI_RT35XX=y -CONFIG_RT2800PCI_RT53XX=y -CONFIG_RT2800USB=m -CONFIG_RT2800USB_RT33XX=y -CONFIG_RT2800USB_RT3573=y -CONFIG_RT2800USB_RT35XX=y -CONFIG_RT2800USB_RT53XX=y -CONFIG_RT2800USB_RT55XX=y -CONFIG_RT2800USB_UNKNOWN=y -# CONFIG_RT2X00_DEBUG is not set -CONFIG_RT2X00_LIB_DEBUGFS=y -CONFIG_RT2X00=m -CONFIG_RT61PCI=m -CONFIG_RT73USB=m -CONFIG_RTAS_FLASH=y -CONFIG_RTAS_PROC=y -CONFIG_RTC_CLASS=y -# CONFIG_RTC_DEBUG is not set -# CONFIG_RTC_DRV_AB3100 is not set -# CONFIG_RTC_DRV_ABB5ZES3 is not set -CONFIG_RTC_DRV_ABX80X=m -CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_BQ4802=m -CONFIG_RTC_DRV_CMOS=y -CONFIG_RTC_DRV_DS1286=m -# CONFIG_RTC_DRV_DS1302 is not set -CONFIG_RTC_DRV_DS1305=m -# CONFIG_RTC_DRV_DS1307_CENTURY is not set -CONFIG_RTC_DRV_DS1307_HWMON=y -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1343=m -CONFIG_RTC_DRV_DS1347=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1374_WDT=y -CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_DS1685_FAMILY=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_DS2404=m -# CONFIG_RTC_DRV_DS3232_HWMON is not set -CONFIG_RTC_DRV_DS3232=m -# CONFIG_RTC_DRV_EFI is not set -CONFIG_RTC_DRV_EM3027=m -# CONFIG_RTC_DRV_EP93XX is not set -CONFIG_RTC_DRV_FM3130=m -# CONFIG_RTC_DRV_FTRTC010 is not set -CONFIG_RTC_DRV_GENERIC=y -# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set -# CONFIG_RTC_DRV_HYM8563 is not set -CONFIG_RTC_DRV_ISL12022=m -# CONFIG_RTC_DRV_ISL12057 is not set -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_M41T80=m -CONFIG_RTC_DRV_M41T80_WDT=y -CONFIG_RTC_DRV_M41T93=m -CONFIG_RTC_DRV_M41T94=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -# CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_MAX6902=m -CONFIG_RTC_DRV_MAX6916=m -CONFIG_RTC_DRV_MCP795=m -# CONFIG_RTC_DRV_MOXART is not set -CONFIG_RTC_DRV_MSM6242=m -CONFIG_RTC_DRV_OPAL=m -CONFIG_RTC_DRV_PCF2123=m -CONFIG_RTC_DRV_PCF2127=m -CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_PCF85063=m -CONFIG_RTC_DRV_PCF8523=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_PM8XXX=m -CONFIG_RTC_DRV_R7301=m -CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RP5C01=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_RV3029C2=m -CONFIG_RTC_DRV_RV3029_HWMON=y -# CONFIG_RTC_DRV_RV8803 is not set -CONFIG_RTC_DRV_RX4581=m -# CONFIG_RTC_DRV_RX6110 is not set -CONFIG_RTC_DRV_RX8010=m -CONFIG_RTC_DRV_RX8025=m -CONFIG_RTC_DRV_RX8581=m -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_SA1100 is not set -# CONFIG_RTC_DRV_SNVS is not set -CONFIG_RTC_DRV_STK17TA8=m -# CONFIG_RTC_DRV_TEST is not set -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m -CONFIG_RTC_DRV_X1205=m -# CONFIG_RTC_DRV_ZYNQMP is not set -# CONFIG_RTC_DS1685_PROC_REGS is not set -CONFIG_RTC_DS1685_SYSFS_REGS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -CONFIG_RTC_HCTOSYS=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_INTF_DEV=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_SYSFS=y -# CONFIG_RTC is not set -# CONFIG_RTC_NVMEM is not set -# CONFIG_RTC_SYSTOHC is not set -# CONFIG_RT_GROUP_SCHED is not set -CONFIG_RTL8180=m -CONFIG_RTL8187=m -CONFIG_RTL8188EE=m -CONFIG_RTL8192CE=m -CONFIG_RTL8192CU=m -CONFIG_RTL8192DE=m -CONFIG_RTL8192EE=m -CONFIG_RTL8192E=m -CONFIG_RTL8192SE=m -# CONFIG_RTL8192U is not set -CONFIG_RTL8723AE=m -CONFIG_RTL8723BE=m -CONFIG_RTL8723BS=m -CONFIG_RTL8821AE=m -CONFIG_RTL8XXXU=m -CONFIG_RTL8XXXU_UNTESTED=y -CONFIG_RTL_CARDS=m -CONFIG_RTLLIB_CRYPTO_CCMP=m -CONFIG_RTLLIB_CRYPTO_TKIP=m -CONFIG_RTLLIB_CRYPTO_WEP=m -CONFIG_RTLLIB=m -# CONFIG_RTLWIFI_DEBUG is not set -CONFIG_RTLWIFI=m -# CONFIG_RTS5208 is not set -CONFIG_S2IO=m -# CONFIG_SAMPLES is not set -# CONFIG_SAMSUNG_USBPHY is not set -CONFIG_SATA_ACARD_AHCI=m -CONFIG_SATA_AHCI_PLATFORM=m -CONFIG_SATA_AHCI=y -# CONFIG_SATA_DWC is not set -# CONFIG_SATA_HIGHBANK is not set -CONFIG_SATA_INIC162X=m -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m -# CONFIG_SATA_ZPODD is not set -# CONFIG_SBC7240_WDT is not set -# CONFIG_SBC8360_WDT is not set -# CONFIG_SBC_EPX_C3_WATCHDOG is not set -CONFIG_SBP_TARGET=m -# CONFIG_SC1200_WDT is not set -# CONFIG_SC520_WDT is not set -CONFIG_SC92031=m -# CONFIG_SCA3000 is not set -CONFIG_SCANLOG=y -CONFIG_SCHED_AUTOGROUP=y -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHED_MC_PRIO is not set -CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_SCHED_SMT=y -# CONFIG_SCHED_STACK_END_CHECK is not set -CONFIG_SCHEDSTATS=y -CONFIG_SCHED_TRACER=y -CONFIG_SCOM_DEBUGFS=y -# CONFIG_SCR24X is not set -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_3W_SAS=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_ACARD=m -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_AHA1542 is not set -CONFIG_SCSI_AIC79XX=m -CONFIG_SCSI_AIC7XXX=m -# CONFIG_SCSI_AIC94XX is not set -CONFIG_SCSI_AM53C974=m -CONFIG_SCSI_ARCMSR=m -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_SCSI_BNX2X_FCOE=m -# CONFIG_SCSI_BUSLOGIC is not set -CONFIG_SCSI_CHELSIO_FCOE=m -CONFIG_SCSI_CONSTANTS=y -CONFIG_SCSI_CXGB3_ISCSI=m -CONFIG_SCSI_CXGB4_ISCSI=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DEBUG=m -CONFIG_SCSI_DH_ALUA=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH=y -CONFIG_SCSI_DMX3191D=m -# CONFIG_SCSI_DPT_I2O is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_EATA_PIO is not set -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_ESAS2R=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_FLASHPOINT=y -# CONFIG_SCSI_FUTURE_DOMAIN is not set -CONFIG_SCSI_GDTH=m -# CONFIG_SCSI_HISI_SAS is not set -CONFIG_SCSI_HPSA=m -CONFIG_SCSI_HPTIOP=m -CONFIG_SCSI_IBMVFC=m -# CONFIG_SCSI_IBMVFC_TRACE is not set -CONFIG_SCSI_IBMVSCSI=m -CONFIG_SCSI_IBMVSCSIS=m -# CONFIG_SCSI_IMM is not set -# CONFIG_SCSI_IN2000 is not set -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -# CONFIG_SCSI_IPS is not set -CONFIG_SCSI_ISCI=m -CONFIG_SCSI_ISCSI_ATTRS=m -# CONFIG_SCSI_IZIP_EPP16 is not set -# CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_LOGGING=y -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_SCSI_LPFC_DEBUG_FS is not set -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_MPT2SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -CONFIG_SCSI_MPT3SAS=m -CONFIG_SCSI_MPT3SAS_MAX_SGE=128 -# CONFIG_SCSI_MQ_DEFAULT is not set -# CONFIG_SCSI_MVSAS_DEBUG is not set -CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_TASKLET=y -CONFIG_SCSI_MVUMI=m -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_SCSI_OSD_DPRINT_SENSE=1 -CONFIG_SCSI_OSD_INITIATOR=m -CONFIG_SCSI_OSD_ULD=m -CONFIG_SCSI_PM8001=m -CONFIG_SCSI_PMCRAID=m -# CONFIG_SCSI_PPA is not set -CONFIG_SCSI_PROC_FS=y -CONFIG_SCSI_QLA_FC=m -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SCAN_ASYNC=y -CONFIG_SCSI_SMARTPQI=m -# CONFIG_SCSI_SNIC_DEBUG_FS is not set -CONFIG_SCSI_SNIC=m -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_SRP=m -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -# CONFIG_SCSI_UFS_DWC_TC_PCI is not set -CONFIG_SCSI_UFSHCD=m -CONFIG_SCSI_UFSHCD_PCI=m -# CONFIG_SCSI_UFSHCD_PLATFORM is not set -CONFIG_SCSI_VIRTIO=m -CONFIG_SCSI_WD719X=m -CONFIG_SCSI=y -CONFIG_SCTP_COOKIE_HMAC_MD5=y -CONFIG_SCTP_COOKIE_HMAC_SHA1=y -# CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set -# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set -CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y -CONFIG_SDIO_UART=m -CONFIG_SECCOMP=y -CONFIG_SECONDARY_TRUSTED_KEYRING=y -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_SECURITY_APPARMOR is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_SECURITYFS=y -CONFIG_SECURITY_INFINIBAND=y -# CONFIG_SECURITY_LOADPIN is not set -CONFIG_SECURITY_NETWORK_XFRM=y -CONFIG_SECURITY_NETWORK=y -# CONFIG_SECURITY_PATH is not set -CONFIG_SECURITY_SELINUX_AVC_STATS=y -CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 -CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 -CONFIG_SECURITY_SELINUX_DEVELOP=y -CONFIG_SECURITY_SELINUX_DISABLE=y -# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set -CONFIG_SECURITY_SELINUX=y -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -CONFIG_SECURITY=y -CONFIG_SECURITY_YAMA=y -CONFIG_SENSORS_AD7314=m -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADC128D818=m -CONFIG_SENSORS_ADCXX=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM1275=m -CONFIG_SENSORS_ADM9240=m -# CONFIG_SENSORS_ADS1015 is not set -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_ADS7871=m -CONFIG_SENSORS_ADT7310=m -CONFIG_SENSORS_ADT7410=m -CONFIG_SENSORS_ADT7411=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_AMC6821=m -CONFIG_SENSORS_APDS990X=m -CONFIG_SENSORS_ASC7621=m -CONFIG_SENSORS_ASPEED=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_DS620=m -CONFIG_SENSORS_EMC1403=m -# CONFIG_SENSORS_EMC2103 is not set -CONFIG_SENSORS_EMC6W201=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_FTSTEUTATES=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_G762=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -# CONFIG_SENSORS_GPIO_FAN is not set -# CONFIG_SENSORS_HIH6130 is not set -# CONFIG_SENSORS_HMC5843_I2C is not set -# CONFIG_SENSORS_HMC5843 is not set -# CONFIG_SENSORS_HMC5843_SPI is not set -# CONFIG_SENSORS_I5K_AMB is not set -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IBMPOWERNV=y -# CONFIG_SENSORS_IIO_HWMON is not set -CONFIG_SENSORS_INA209=m -CONFIG_SENSORS_INA2XX=m -CONFIG_SENSORS_INA3221=m -# CONFIG_SENSORS_IR35221 is not set -# CONFIG_SENSORS_ISL29018 is not set -# CONFIG_SENSORS_ISL29028 is not set -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m -CONFIG_SENSORS_LINEAGE=m -CONFIG_SENSORS_LIS3_I2C=m -CONFIG_SENSORS_LIS3LV02D=m -# CONFIG_SENSORS_LIS3_SPI is not set -CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM70=m -CONFIG_SENSORS_LM73=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LM95234=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_LM95245=m -CONFIG_SENSORS_LTC2945=m -CONFIG_SENSORS_LTC2978=m -CONFIG_SENSORS_LTC2990=m -CONFIG_SENSORS_LTC3815=m -CONFIG_SENSORS_LTC4151=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4222=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LTC4260=m -CONFIG_SENSORS_LTC4261=m -CONFIG_SENSORS_MAX1111=m -CONFIG_SENSORS_MAX16064=m -CONFIG_SENSORS_MAX16065=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX1668=m -CONFIG_SENSORS_MAX197=m -CONFIG_SENSORS_MAX20751=m -CONFIG_SENSORS_MAX31722=m -CONFIG_SENSORS_MAX31790=m -CONFIG_SENSORS_MAX34440=m -CONFIG_SENSORS_MAX6639=m -CONFIG_SENSORS_MAX6642=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_MAX6697=m -CONFIG_SENSORS_MAX8688=m -CONFIG_SENSORS_MCP3021=m -CONFIG_SENSORS_NCT6683=m -CONFIG_SENSORS_NCT6775=m -CONFIG_SENSORS_NCT7802=m -CONFIG_SENSORS_NCT7904=m -CONFIG_SENSORS_NTC_THERMISTOR=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_PMBUS=m -CONFIG_SENSORS_POWR1220=m -CONFIG_SENSORS_PWM_FAN=m -CONFIG_SENSORS_SCH5627=m -CONFIG_SENSORS_SCH5636=m -CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SHT21=m -CONFIG_SENSORS_SHT3x=m -CONFIG_SENSORS_SHTC1=m -CONFIG_SENSORS_SIS5595=m -# CONFIG_SENSORS_SMM665 is not set -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47M1=m -# CONFIG_SENSORS_STTS751 is not set -CONFIG_SENSORS_TC654=m -CONFIG_SENSORS_TC74=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP102=m -CONFIG_SENSORS_TMP103=m -CONFIG_SENSORS_TMP108=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_TPS40422=m -CONFIG_SENSORS_TSL2550=m -# CONFIG_SENSORS_TSL2563 is not set -CONFIG_SENSORS_UCD9000=m -CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -# CONFIG_SENSORS_W83795_FANCTRL is not set -CONFIG_SENSORS_W83795=m -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -# CONFIG_SENSORS_XGENE is not set -CONFIG_SENSORS_ZL6100=m -# CONFIG_SERIAL_8250_ASPEED_VUART is not set -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_CS=m -# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set -# CONFIG_SERIAL_8250_DETECT_IRQ is not set -CONFIG_SERIAL_8250_DW=y -CONFIG_SERIAL_8250_EXAR=m -CONFIG_SERIAL_8250_EXTENDED=y -# CONFIG_SERIAL_8250_FINTEK is not set -# CONFIG_SERIAL_8250_INGENIC is not set -# CONFIG_SERIAL_8250 is not set -CONFIG_SERIAL_8250_MANY_PORTS=y -# CONFIG_SERIAL_8250_MID is not set -CONFIG_SERIAL_8250_MOXA=m -CONFIG_SERIAL_8250_NR_UARTS=32 -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_RT288X=y -CONFIG_SERIAL_8250_RUNTIME_UARTS=32 -CONFIG_SERIAL_8250_SHARE_IRQ=y -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -CONFIG_SERIAL_ARC=m -CONFIG_SERIAL_ARC_NR_PORTS=1 -# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_SERIAL_CORE=m -# CONFIG_SERIAL_CPM is not set -CONFIG_SERIAL_DEV_BUS=y -CONFIG_SERIAL_DEV_CTRL_TTYPORT=y -# CONFIG_SERIAL_FSL_LPUART is not set -CONFIG_SERIAL_ICOM=m -# CONFIG_SERIAL_IFX6X60 is not set -CONFIG_SERIAL_JSM=m -# CONFIG_SERIAL_KGDB_NMI is not set -# CONFIG_SERIAL_MAX3100 is not set -# CONFIG_SERIAL_MAX310X is not set -CONFIG_SERIAL_NONSTANDARD=y -CONFIG_SERIAL_OF_PLATFORM=m -# CONFIG_SERIAL_PCH_UART is not set -# CONFIG_SERIAL_QE is not set -# CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_SCCNXP is not set -# CONFIG_SERIAL_ST_ASC is not set -# CONFIG_SERIAL_TIMBERDALE is not set -# CONFIG_SERIAL_UARTLITE is not set -# CONFIG_SERIAL_XILINX_PS_UART is not set -CONFIG_SERIO_ALTERA_PS2=m -# CONFIG_SERIO_APBPS2 is not set -CONFIG_SERIO_ARC_PS2=m -# CONFIG_SERIO_CT82C710 is not set -CONFIG_SERIO_I8042=y -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_OLPC_APSP is not set -# CONFIG_SERIO_PARKBD is not set -# CONFIG_SERIO_PCIPS2 is not set -# CONFIG_SERIO_PS2MULT is not set -CONFIG_SERIO_RAW=m -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_XILINX_XPS_PS2 is not set -CONFIG_SERIO=y -CONFIG_SFC_FALCON=m -CONFIG_SFC_FALCON_MTD=y -# CONFIG_SFC is not set -# CONFIG_SGI_IOC4 is not set -CONFIG_SGI_PARTITION=y -CONFIG_SH_ETH=m -# CONFIG_SI1145 is not set -# CONFIG_SI7005 is not set -# CONFIG_SI7020 is not set -# CONFIG_SIGMA is not set -CONFIG_SIGMATEL_FIR=m -CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_GPIO=y -# CONFIG_SIMPLE_PM_BUS is not set -CONFIG_SIS190=m -CONFIG_SIS900=m -# CONFIG_SKFP is not set -# CONFIG_SKGE_DEBUG is not set -CONFIG_SKGE_GENESIS=y -CONFIG_SKGE=m -# CONFIG_SKY2_DEBUG is not set -CONFIG_SKY2=m -CONFIG_SLAB_FREELIST_RANDOM=y -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLICOSS is not set -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP=m -# CONFIG_SLIP_MODE_SLIP6 is not set -CONFIG_SLIP_SMART=y -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -CONFIG_SLUB=y -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_SMC_IRCC_FIR=m -# CONFIG_SMC is not set -# CONFIG_SM_FTL is not set -CONFIG_SMP=y -CONFIG_SMSC911X=m -CONFIG_SMSC9420=m -CONFIG_SMSC_PHY=m -CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMS_SDIO_DRV=m -# CONFIG_SMS_SIANO_DEBUGFS is not set -CONFIG_SMS_SIANO_MDTV=m -CONFIG_SMS_SIANO_RC=y -CONFIG_SMS_USB_DRV=m -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 -CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALI5451=m -CONFIG_SND_ALOOP=m -CONFIG_SND_ALS300=m -CONFIG_SND_ALS4000=m -CONFIG_SND_ASIHPI=m -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -# CONFIG_SND_ATMEL_SOC is not set -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -# CONFIG_SND_AUDIO_GRAPH_CARD is not set -# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set -# CONFIG_SND_AW2 is not set -CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set -CONFIG_SND_BEBOB=m -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_COMPRESS_OFFLOAD=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CS5530=m -CONFIG_SND_CS5535AUDIO=m -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_DARLA24=m -# CONFIG_SND_DEBUG_VERBOSE is not set -CONFIG_SND_DEBUG=y -CONFIG_SND_DESIGNWARE_I2S=m -CONFIG_SND_DESIGNWARE_PCM=y -CONFIG_SND_DICE=m -CONFIG_SND_DMAENGINE_PCM=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_ECHO3G=m -# CONFIG_SND_EDMA_SOC is not set -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968_INPUT=y -CONFIG_SND_ES1968=m -CONFIG_SND_ES1968_RADIO=y -CONFIG_SND_FIREFACE=m -CONFIG_SND_FIREWIRE_DIGI00X=m -CONFIG_SND_FIREWIRE_MOTU=m -CONFIG_SND_FIREWIRE_TASCAM=m -CONFIG_SND_FIREWIRE=y -CONFIG_SND_FIREWORKS=m -CONFIG_SND_FM801=m -CONFIG_SND_FM801_TEA575X_BOOL=y -CONFIG_SND_GINA20=m -CONFIG_SND_GINA24=m -CONFIG_SND_HDA_CODEC_ANALOG=m -CONFIG_SND_HDA_CODEC_CA0110=m -CONFIG_SND_HDA_CODEC_CA0132_DSP=y -CONFIG_SND_HDA_CODEC_CA0132=m -CONFIG_SND_HDA_CODEC_CIRRUS=m -CONFIG_SND_HDA_CODEC_CMEDIA=m -CONFIG_SND_HDA_CODEC_CONEXANT=m -CONFIG_SND_HDA_CODEC_HDMI=m -CONFIG_SND_HDA_CODEC_REALTEK=m -CONFIG_SND_HDA_CODEC_SI3054=m -CONFIG_SND_HDA_CODEC_SIGMATEL=m -CONFIG_SND_HDA_CODEC_VIA=m -CONFIG_SND_HDA_GENERIC=m -CONFIG_SND_HDA_HWDEP=y -CONFIG_SND_HDA_I915=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=0 -CONFIG_SND_HDA_INPUT_BEEP=y -# CONFIG_SND_HDA_INTEL is not set -CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_PREALLOC_SIZE=4096 -CONFIG_SND_HDA_RECONFIG=y -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_HRTIMER=m -CONFIG_SND_I2S_HI6210_I2S=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGO=m -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -CONFIG_SND_ISIGHT=m -CONFIG_SND_JACK=y -CONFIG_SND_KORG1212=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_LOLA=m -CONFIG_SND_LX6464ES=m -CONFIG_SND=m -CONFIG_SND_MAESTRO3_INPUT=y -CONFIG_SND_MAESTRO3=m -CONFIG_SND_MAX_CARDS=32 -CONFIG_SND_MIA=m -CONFIG_SND_MIXART=m -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_MONA=m -CONFIG_SND_MPU401=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_NM256=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_OXFW=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_PCI=y -# CONFIG_SND_PCMCIA is not set -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_PCM_XRUN_DEBUG=y -CONFIG_SND_PCSP=m -CONFIG_SND_PCXHR=m -CONFIG_SND_PORTMAN2X4=m -CONFIG_SND_PPC=y -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME9652=m -CONFIG_SND_RME96=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQUENCER_OSS=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_SIMPLE_CARD=m -CONFIG_SND_SIMPLE_CARD_UTILS=m -CONFIG_SND_SIMPLE_SCU_CARD=m -CONFIG_SND_SIS7019=m -# CONFIG_SND_SOC_ADAU1701 is not set -CONFIG_SND_SOC_ADAU1761_I2C=m -CONFIG_SND_SOC_ADAU1761_SPI=m -# CONFIG_SND_SOC_ADAU7002 is not set -# CONFIG_SND_SOC_AK4104 is not set -# CONFIG_SND_SOC_AK4554 is not set -# CONFIG_SND_SOC_AK4613 is not set -# CONFIG_SND_SOC_AK4642 is not set -# CONFIG_SND_SOC_AK5386 is not set -# CONFIG_SND_SOC_ALC5623 is not set -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_AMD_ACP=m -# CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631 is not set -# CONFIG_SND_SOC_BT_SCO is not set -# CONFIG_SND_SOC_CS35L32 is not set -# CONFIG_SND_SOC_CS35L33 is not set -CONFIG_SND_SOC_CS35L34=m -CONFIG_SND_SOC_CS35L35=m -# CONFIG_SND_SOC_CS4265 is not set -# CONFIG_SND_SOC_CS4270 is not set -# CONFIG_SND_SOC_CS4271_I2C is not set -# CONFIG_SND_SOC_CS4271 is not set -# CONFIG_SND_SOC_CS4271_SPI is not set -CONFIG_SND_SOC_CS42L42=m -# CONFIG_SND_SOC_CS42L51_I2C is not set -# CONFIG_SND_SOC_CS42L52 is not set -# CONFIG_SND_SOC_CS42L56 is not set -# CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42XX8_I2C is not set -# CONFIG_SND_SOC_CS4349 is not set -# CONFIG_SND_SOC_CS53L30 is not set -CONFIG_SND_SOC_DIO2125=m -CONFIG_SND_SOC_DMIC=m -CONFIG_SND_SOC_ES7134=m -# CONFIG_SND_SOC_ES8316 is not set -# CONFIG_SND_SOC_ES8328 is not set -# CONFIG_SND_SOC_FSL_ASOC_CARD is not set -# CONFIG_SND_SOC_FSL_ASRC is not set -# CONFIG_SND_SOC_FSL_ESAI is not set -# CONFIG_SND_SOC_FSL_SAI is not set -# CONFIG_SND_SOC_FSL_SPDIF is not set -# CONFIG_SND_SOC_FSL_SSI is not set -CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y -# CONFIG_SND_SOC_GTM601 is not set -CONFIG_SND_SOC_HDAC_HDMI=m -CONFIG_SND_SOC_HDMI_CODEC=m -# CONFIG_SND_SOC_IMG is not set -# CONFIG_SND_SOC_IMX_AUDMUX is not set -# CONFIG_SND_SOC_IMX_ES8328 is not set -# CONFIG_SND_SOC_INNO_RK3036 is not set -# CONFIG_SND_SOC is not set -# CONFIG_SND_SOC_MAX98504 is not set -# CONFIG_SND_SOC_MAX9860 is not set -CONFIG_SND_SOC_MAX98927=m -# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set -# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set -# CONFIG_SND_SOC_NAU8540 is not set -# CONFIG_SND_SOC_NAU8810 is not set -CONFIG_SND_SOC_NAU8824=m -# CONFIG_SND_SOC_PCM1681 is not set -# CONFIG_SND_SOC_PCM179X_I2C is not set -# CONFIG_SND_SOC_PCM179X is not set -# CONFIG_SND_SOC_PCM179X_SPI is not set -# CONFIG_SND_SOC_PCM3168A_I2C is not set -# CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set -# CONFIG_SND_SOC_PCM512x_SPI is not set -# CONFIG_SND_SOC_RT5616 is not set -# CONFIG_SND_SOC_RT5631 is not set -# CONFIG_SND_SOC_SGTL5000 is not set -# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set -CONFIG_SND_SOC_SPDIF=m -# CONFIG_SND_SOC_SSM2602_I2C is not set -# CONFIG_SND_SOC_SSM2602_SPI is not set -# CONFIG_SND_SOC_SSM4567 is not set -# CONFIG_SND_SOC_STA32X is not set -# CONFIG_SND_SOC_STA350 is not set -# CONFIG_SND_SOC_STI_SAS is not set -# CONFIG_SND_SOC_TAS2552 is not set -# CONFIG_SND_SOC_TAS5086 is not set -# CONFIG_SND_SOC_TAS571X is not set -# CONFIG_SND_SOC_TAS5720 is not set -# CONFIG_SND_SOC_TFA9879 is not set -# CONFIG_SND_SOC_TLV320AIC23_I2C is not set -# CONFIG_SND_SOC_TLV320AIC23_SPI is not set -# CONFIG_SND_SOC_TLV320AIC31XX is not set -# CONFIG_SND_SOC_TLV320AIC3X is not set -# CONFIG_SND_SOC_TPA6130A2 is not set -# CONFIG_SND_SOC_TS3A227E is not set -# CONFIG_SND_SOC_WM8510 is not set -# CONFIG_SND_SOC_WM8523 is not set -# CONFIG_SND_SOC_WM8580 is not set -# CONFIG_SND_SOC_WM8711 is not set -# CONFIG_SND_SOC_WM8728 is not set -# CONFIG_SND_SOC_WM8731 is not set -# CONFIG_SND_SOC_WM8737 is not set -# CONFIG_SND_SOC_WM8741 is not set -# CONFIG_SND_SOC_WM8750 is not set -# CONFIG_SND_SOC_WM8753 is not set -# CONFIG_SND_SOC_WM8770 is not set -# CONFIG_SND_SOC_WM8776 is not set -# CONFIG_SND_SOC_WM8804_I2C is not set -# CONFIG_SND_SOC_WM8804 is not set -# CONFIG_SND_SOC_WM8804_SPI is not set -# CONFIG_SND_SOC_WM8903 is not set -# CONFIG_SND_SOC_WM8960 is not set -# CONFIG_SND_SOC_WM8962 is not set -# CONFIG_SND_SOC_WM8974 is not set -# CONFIG_SND_SOC_WM8978 is not set -# CONFIG_SND_SOC_WM8985 is not set -# CONFIG_SND_SOC_XTFPGA_I2S is not set -# CONFIG_SND_SOC_ZX_AUD96P22 is not set -CONFIG_SND_SONICVIBES=m -# CONFIG_SND_SPI is not set -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_TRIDENT=m -CONFIG_SND_USB_6FIRE=m -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_HIFACE=m -CONFIG_SND_USB_PODHD=m -CONFIG_SND_USB_POD=m -CONFIG_SND_USB_TONEPORT=m -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_US122L=m -CONFIG_SND_USB_USX2Y=m -CONFIG_SND_USB_VARIAX=m -CONFIG_SND_USB=y -CONFIG_SND_VERBOSE_PRINTK=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -CONFIG_SND_VIRMIDI=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m -# CONFIG_SOC_CAMERA is not set -# CONFIG_SOC_TI is not set -# CONFIG_SOC_ZTE is not set -CONFIG_SOFTLOCKUP_DETECTOR=y -CONFIG_SOFT_WATCHDOG=m -CONFIG_SOLARIS_X86_PARTITION=y -# CONFIG_SOLO6X10 is not set -CONFIG_SONY_FF=y -# CONFIG_SONYPI is not set -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -# CONFIG_SOUND_PRIME is not set -CONFIG_SPAPR_TCE_IOMMU=y -CONFIG_SPARSE_IRQ=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_SPARSE_RCU_POINTER=y -# CONFIG_SPEAKUP is not set -# CONFIG_SPI_ALTERA is not set -# CONFIG_SPI_AXI_SPI_ENGINE is not set -# CONFIG_SPI_BITBANG is not set -# CONFIG_SPI_BUTTERFLY is not set -# CONFIG_SPI_DEBUG is not set -# CONFIG_SPI_DESIGNWARE is not set -CONFIG_SPI_FSL_LPSPI=m -# CONFIG_SPI_FSL_SPI is not set -# CONFIG_SPI_GPIO is not set -# CONFIG_SPI is not set -# CONFIG_SPI_LM70_LLP is not set -# CONFIG_SPI_LOOPBACK_TEST is not set -# CONFIG_SPI_OC_TINY is not set -# CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_ROCKCHIP is not set -# CONFIG_SPI_SC18IS602 is not set -# CONFIG_SPI_SLAVE is not set -# CONFIG_SPI_SPIDEV is not set -# CONFIG_SPI_TLE62X0 is not set -# CONFIG_SPI_TOPCLIFF_PCH is not set -# CONFIG_SPI_XCOMM is not set -# CONFIG_SPI_XILINX is not set -# CONFIG_SPMI is not set -# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set -# CONFIG_SQUASHFS_EMBEDDED is not set -CONFIG_SQUASHFS_LZ4=y -CONFIG_SQUASHFS_LZO=y -CONFIG_SQUASHFS=m -CONFIG_SQUASHFS_XATTR=y -CONFIG_SQUASHFS_XZ=y -CONFIG_SQUASHFS_ZLIB=y -# CONFIG_SRAM is not set -# CONFIG_SRF04 is not set -# CONFIG_SRF08 is not set -# CONFIG_SSB_DEBUG is not set -CONFIG_SSB_DRIVER_GPIO=y -CONFIG_SSB_DRIVER_PCICORE=y -CONFIG_SSB_HOST_SOC=y -CONFIG_SSB=m -CONFIG_SSB_PCIHOST=y -CONFIG_SSB_PCMCIAHOST=y -CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_SILENT is not set -# CONFIG_SSFDC is not set -CONFIG_STACK_TRACER=y -CONFIG_STACK_VALIDATION=y -# CONFIG_STAGING_BOARD is not set -CONFIG_STAGING_MEDIA=y -CONFIG_STAGING=y -CONFIG_STANDALONE=y -# CONFIG_STATIC_KEYS_SELFTEST is not set -# CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_STE10XP=m -# CONFIG_STE_MODEM_RPROC is not set -CONFIG_STK3310=m -# CONFIG_STK8312 is not set -# CONFIG_STK8BA50 is not set -# CONFIG_STM_DUMMY is not set -# CONFIG_STM is not set -CONFIG_STMMAC_ETH=m -# CONFIG_STMMAC_PCI is not set -# CONFIG_STMMAC_PLATFORM is not set -# CONFIG_STM_SOURCE_CONSOLE is not set -CONFIG_STRICT_DEVMEM=y -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_STRIP is not set -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_SUNGEM=m -CONFIG_SUN_PARTITION=y -CONFIG_SUNRPC_DEBUG=y -CONFIG_SUNRPC_GSS=m -CONFIG_SUNRPC=m -CONFIG_SUNRPC_XPRT_RDMA=m -# CONFIG_SURFACE_3_BUTTON is not set -CONFIG_SUSPEND_FREEZER=y -CONFIG_SUSPEND=y -CONFIG_SWAP=y -# CONFIG_SWIOTLB is not set -# CONFIG_SW_SYNC is not set -# CONFIG_SX9500 is not set -CONFIG_SYNC_FILE=y -# CONFIG_SYNCLINK_CS is not set -CONFIG_SYNCLINK_GT=m -CONFIG_SYNCLINK=m -CONFIG_SYNCLINKMP=m -CONFIG_SYN_COOKIES=y -# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set -# CONFIG_SYSCON_REBOOT_MODE is not set -CONFIG_SYSCTL=y -# CONFIG_SYSFS_DEPRECATED is not set -# CONFIG_SYSFS_DEPRECATED_V2 is not set -CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" -CONFIG_SYSTEM_BLACKLIST_KEYRING=y -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SYSTEMPORT is not set -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSV68_PARTITION is not set -CONFIG_SYSV_FS=m -CONFIG_SYSVIPC=y -# CONFIG_T5403 is not set -CONFIG_TABLET_SERIAL_WACOM4=m -CONFIG_TABLET_USB_ACECAD=m -CONFIG_TABLET_USB_AIPTEK=m -CONFIG_TABLET_USB_GTCO=m -CONFIG_TABLET_USB_HANWANG=m -CONFIG_TABLET_USB_KBTAB=m -CONFIG_TABLET_USB_PEGASUS=m -CONFIG_TARGET_CORE=m -CONFIG_TASK_DELAY_ACCT=y -CONFIG_TASK_IO_ACCOUNTING=y -CONFIG_TASKS_RCU=y -CONFIG_TASKSTATS=y -CONFIG_TASK_XACCT=y -CONFIG_TCG_ATMEL=m -CONFIG_TCG_CRB=m -# CONFIG_TCG_INFINEON is not set -CONFIG_TCG_NSC=m -# CONFIG_TCG_TIS_I2C_ATMEL is not set -# CONFIG_TCG_TIS_I2C_INFINEON is not set -# CONFIG_TCG_TIS_I2C_NUVOTON is not set -CONFIG_TCG_TIS=m -# CONFIG_TCG_TIS_SPI is not set -# CONFIG_TCG_TIS_ST33ZP24_I2C is not set -# CONFIG_TCG_TIS_ST33ZP24 is not set -# CONFIG_TCG_TIS_ST33ZP24_SPI is not set -# CONFIG_TCG_TPM is not set -# CONFIG_TCG_VTPM_PROXY is not set -# CONFIG_TCG_XEN is not set -CONFIG_TCM_FC=m -CONFIG_TCM_FILEIO=m -CONFIG_TCM_IBLOCK=m -CONFIG_TCM_PSCSI=m -# CONFIG_TCM_QLA2XXX_DEBUG is not set -CONFIG_TCM_QLA2XXX=m -CONFIG_TCM_USER2=m -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BBR=m -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CDG=m -CONFIG_TCP_CONG_CUBIC=y -CONFIG_TCP_CONG_DCTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_NV=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_MD5SIG=y -# CONFIG_TCS3414 is not set -# CONFIG_TCS3472 is not set -# CONFIG_TEE is not set -CONFIG_TEHUTI=m -CONFIG_TEKRAM_DONGLE=m -CONFIG_TELCLOCK=m -CONFIG_TERANETICS_PHY=m -CONFIG_TEST_ASYNC_DRIVER_PROBE=m -# CONFIG_TEST_BITMAP is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_HASH is not set -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_TEST_KMOD is not set -CONFIG_TEST_KSTRTOX=y -CONFIG_TEST_LIST_SORT=y -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_PARMAN is not set -# CONFIG_TEST_POWER is not set -# CONFIG_TEST_PRINTF is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_SORT is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_TEST_SYSCTL is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_UUID is not set -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -# CONFIG_THERMAL_EMULATION is not set -# CONFIG_THERMAL_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_FAIR_SHARE=y -# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set -CONFIG_THERMAL_GOV_STEP_WISE=y -# CONFIG_THERMAL_GOV_USER_SPACE is not set -CONFIG_THERMAL_HWMON=y -# CONFIG_THERMAL_OF is not set -# CONFIG_THERMAL_WRITABLE_TRIPS is not set -CONFIG_THERMAL=y -CONFIG_THRUSTMASTER_FF=y -# CONFIG_THUNDERBOLT is not set -# CONFIG_TI_ADC081C is not set -# CONFIG_TI_ADC0832 is not set -# CONFIG_TI_ADC084S021 is not set -# CONFIG_TI_ADC108S102 is not set -# CONFIG_TI_ADC12138 is not set -# CONFIG_TI_ADC128S052 is not set -# CONFIG_TI_ADC161S626 is not set -CONFIG_TI_ADS1015=m -# CONFIG_TI_ADS7950 is not set -# CONFIG_TI_ADS8688 is not set -# CONFIG_TI_CPSW_ALE is not set -# CONFIG_TI_DAC7512 is not set -CONFIG_TIFM_7XX1=m -CONFIG_TIFM_CORE=m -CONFIG_TIGON3_HWMON=y -CONFIG_TIGON3=m -# CONFIG_TIMB_DMA is not set -# CONFIG_TIMER_STATS is not set -CONFIG_TIPC=m -# CONFIG_TIPC_MEDIA_IB is not set -CONFIG_TIPC_MEDIA_UDP=y -CONFIG_TI_SCI_PROTOCOL=m -# CONFIG_TI_ST is not set -# CONFIG_TI_TLC4541 is not set -CONFIG_TLAN=m -CONFIG_TLS=m -# CONFIG_TMD_HERMES is not set -# CONFIG_TMP006 is not set -# CONFIG_TMP007 is not set -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -CONFIG_TMPFS=y -CONFIG_TOIM3232_DONGLE=m -# CONFIG_TOSHIBA_FIR is not set -# CONFIG_TOUCHSCREEN_AD7877 is not set -CONFIG_TOUCHSCREEN_AD7879_I2C=m -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# CONFIG_TOUCHSCREEN_AR1021_I2C is not set -CONFIG_TOUCHSCREEN_ATMEL_MXT=m -# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set -# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set -CONFIG_TOUCHSCREEN_DYNAPRO=m -CONFIG_TOUCHSCREEN_EDT_FT5X06=m -CONFIG_TOUCHSCREEN_EETI=m -CONFIG_TOUCHSCREEN_EGALAX=m -CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m -# CONFIG_TOUCHSCREEN_EKTF2127 is not set -CONFIG_TOUCHSCREEN_ELAN=m -CONFIG_TOUCHSCREEN_ELO=m -# CONFIG_TOUCHSCREEN_FT6236 is not set -CONFIG_TOUCHSCREEN_FUJITSU=m -# CONFIG_TOUCHSCREEN_GOODIX is not set -CONFIG_TOUCHSCREEN_GUNZE=m -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -CONFIG_TOUCHSCREEN_ILI210X=m -# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set -CONFIG_TOUCHSCREEN_INEXIO=m -# CONFIG_TOUCHSCREEN_MAX11801 is not set -CONFIG_TOUCHSCREEN_MCS5000=m -# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set -CONFIG_TOUCHSCREEN_MK712=m -CONFIG_TOUCHSCREEN_MMS114=m -CONFIG_TOUCHSCREEN_MTOUCH=m -CONFIG_TOUCHSCREEN_PENMOUNT=m -CONFIG_TOUCHSCREEN_PIXCIR=m -CONFIG_TOUCHSCREEN_RM_TS=m -# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -CONFIG_TOUCHSCREEN_SILEAD=m -CONFIG_TOUCHSCREEN_SIS_I2C=m -CONFIG_TOUCHSCREEN_ST1232=m -# CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SUR40 is not set -# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set -# CONFIG_TOUCHSCREEN_SX8654 is not set -CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m -CONFIG_TOUCHSCREEN_TOUCHIT213=m -CONFIG_TOUCHSCREEN_TOUCHRIGHT=m -CONFIG_TOUCHSCREEN_TOUCHWIN=m -# CONFIG_TOUCHSCREEN_TPS6507X is not set -CONFIG_TOUCHSCREEN_TS4800=m -# CONFIG_TOUCHSCREEN_TSC2004 is not set -# CONFIG_TOUCHSCREEN_TSC2005 is not set -CONFIG_TOUCHSCREEN_TSC2007_IIO=y -CONFIG_TOUCHSCREEN_TSC2007=m -CONFIG_TOUCHSCREEN_TSC_SERIO=m -CONFIG_TOUCHSCREEN_UCB1400=m -CONFIG_TOUCHSCREEN_USB_COMPOSITE=m -CONFIG_TOUCHSCREEN_USB_E2I=y -CONFIG_TOUCHSCREEN_W90X900=m -CONFIG_TOUCHSCREEN_WACOM_I2C=m -CONFIG_TOUCHSCREEN_WACOM_W8001=m -# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -# CONFIG_TOUCHSCREEN_WM97XX is not set -CONFIG_TOUCHSCREEN_ZET6223=m -CONFIG_TOUCHSCREEN_ZFORCE=m -# CONFIG_TPL0102 is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS65010 is not set -# CONFIG_TPS6507X is not set -# CONFIG_TRACE_BRANCH_PROFILING is not set -# CONFIG_TRACE_ENUM_MAP_FILE is not set -CONFIG_TRACE_EVAL_MAP_FILE=y -# CONFIG_TRACEPOINT_BENCHMARK is not set -# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set -CONFIG_TRACER_SNAPSHOT=y -# CONFIG_TRACE_SINK is not set -# CONFIG_TRACING_EVENTS_GPIO is not set -CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y -CONFIG_TRANSPARENT_HUGEPAGE=y -# CONFIG_TR is not set -CONFIG_TRUSTED_KEYS=m -# CONFIG_TS4800_IRQ is not set -# CONFIG_TS4800_WATCHDOG is not set -# CONFIG_TSL2583 is not set -# CONFIG_TSL2x7x is not set -# CONFIG_TSL4531 is not set -# CONFIG_TSYS01 is not set -# CONFIG_TSYS02D is not set -CONFIG_TULIP=m -CONFIG_TULIP_MMIO=y -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_TUN=m -# CONFIG_TUN_VNET_CROSS_LE is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_TWL6040_CORE is not set -CONFIG_TYPEC_FUSB302=m -CONFIG_TYPEC_TCPCI=m -CONFIG_TYPEC_TCPM=m -CONFIG_TYPEC_UCSI=m -CONFIG_TYPEC_WCOVE=m -CONFIG_TYPHOON=m -CONFIG_UBIFS_ATIME_SUPPORT=y -# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set -CONFIG_UBIFS_FS_ENCRYPTION=y -CONFIG_UBIFS_FS=m -CONFIG_UBIFS_FS_SECURITY=y -# CONFIG_UBSAN_ALIGNMENT is not set -# CONFIG_UBSAN is not set -# CONFIG_UBSAN_SANITIZE_ALL is not set -# CONFIG_UCB1400_CORE is not set -# CONFIG_UCC_GETH is not set -CONFIG_UCSI_ACPI=m -CONFIG_UCSI=m -# CONFIG_UDBG_RTAS_CONSOLE is not set -CONFIG_UDF_FS=m -# CONFIG_UEVENT_HELPER is not set -# CONFIG_UFS_DEBUG is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -CONFIG_UHID=m -CONFIG_UIO_AEC=m -CONFIG_UIO_CIF=m -# CONFIG_UIO_DMEM_GENIRQ is not set -CONFIG_UIO_HV_GENERIC=m -CONFIG_UIO=m -# CONFIG_UIO_MF624 is not set -# CONFIG_UIO_NETX is not set -CONFIG_UIO_PCI_GENERIC=m -# CONFIG_UIO_PDRV_GENIRQ is not set -# CONFIG_UIO_PDRV is not set -# CONFIG_UIO_PRUSS is not set -CONFIG_UIO_SERCOS3=m -CONFIG_ULI526X=m -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_UNISYSSPAR is not set -CONFIG_UNIX98_PTYS=y -CONFIG_UNIX_DIAG=m -CONFIG_UNIXWARE_DISKLABEL=y -CONFIG_UNIX=y -CONFIG_UNUSED_SYMBOLS=y -CONFIG_UPROBE_EVENTS=y -# CONFIG_US5182D is not set -CONFIG_USB_ACM=m -CONFIG_USB_ADUTUX=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -CONFIG_USB_APPLEDISPLAY=m -CONFIG_USB_ARMLINUX=y -CONFIG_USB_ATMEL=m -CONFIG_USB_ATM=m -CONFIG_USB_BELKIN=y -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_CATC=m -CONFIG_USB_CDC_PHONET=m -CONFIG_USB_CHAOSKEY=m -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_CHIPIDEA_ULPI is not set -# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set -CONFIG_USB_CXACRU=m -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_DEBUG is not set -CONFIG_USB_DEFAULT_PERSIST=y -CONFIG_USB_DSBR=m -# CONFIG_USB_DWC2 is not set -# CONFIG_USB_DWC3 is not set -# CONFIG_USB_DWC3_OF_SIMPLE is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -CONFIG_USB_EHCI_HCD_PPC_OF=y -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_MV is not set -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -# CONFIG_USB_EHSET_TEST_FIXTURE is not set -CONFIG_USB_EMI26=m -CONFIG_USB_EMI62=m -CONFIG_USB_EPSON2888=y -CONFIG_USB_EZUSB_FX2=m -CONFIG_USB_EZUSB=y -# CONFIG_USB_FHCI_HCD is not set -# CONFIG_USB_FOTG210_HCD is not set -CONFIG_USB_FTDI_ELAN=m -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_GADGET is not set -CONFIG_USB_GL860=m -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_USB_GR_UDC is not set -CONFIG_USB_G_SERIAL=m -CONFIG_USB_GSPCA_BENQ=m -CONFIG_USB_GSPCA_CONEX=m -CONFIG_USB_GSPCA_CPIA1=m -CONFIG_USB_GSPCA_DTCS033=m -CONFIG_USB_GSPCA_ETOMS=m -CONFIG_USB_GSPCA_FINEPIX=m -CONFIG_USB_GSPCA_JEILINJ=m -CONFIG_USB_GSPCA_JL2005BCD=m -CONFIG_USB_GSPCA_KINECT=m -CONFIG_USB_GSPCA_KONICA=m -CONFIG_USB_GSPCA=m -CONFIG_USB_GSPCA_MARS=m -CONFIG_USB_GSPCA_MR97310A=m -CONFIG_USB_GSPCA_NW80X=m -CONFIG_USB_GSPCA_OV519=m -CONFIG_USB_GSPCA_OV534_9=m -CONFIG_USB_GSPCA_OV534=m -CONFIG_USB_GSPCA_PAC207=m -CONFIG_USB_GSPCA_PAC7302=m -CONFIG_USB_GSPCA_PAC7311=m -CONFIG_USB_GSPCA_SE401=m -CONFIG_USB_GSPCA_SN9C2028=m -CONFIG_USB_GSPCA_SN9C20X=m -CONFIG_USB_GSPCA_SONIXB=m -CONFIG_USB_GSPCA_SONIXJ=m -CONFIG_USB_GSPCA_SPCA1528=m -CONFIG_USB_GSPCA_SPCA500=m -CONFIG_USB_GSPCA_SPCA501=m -CONFIG_USB_GSPCA_SPCA505=m -CONFIG_USB_GSPCA_SPCA506=m -CONFIG_USB_GSPCA_SPCA508=m -CONFIG_USB_GSPCA_SPCA561=m -CONFIG_USB_GSPCA_SQ905C=m -CONFIG_USB_GSPCA_SQ905=m -CONFIG_USB_GSPCA_SQ930X=m -CONFIG_USB_GSPCA_STK014=m -CONFIG_USB_GSPCA_STK1135=m -CONFIG_USB_GSPCA_STV0680=m -CONFIG_USB_GSPCA_SUNPLUS=m -CONFIG_USB_GSPCA_T613=m -CONFIG_USB_GSPCA_TOPRO=m -CONFIG_USB_GSPCA_TOUPTEK=m -CONFIG_USB_GSPCA_TV8532=m -CONFIG_USB_GSPCA_VC032X=m -CONFIG_USB_GSPCA_VICAM=m -CONFIG_USB_GSPCA_XIRLINK_CIT=m -CONFIG_USB_GSPCA_ZC3XX=m -# CONFIG_USB_HCD_BCMA is not set -# CONFIG_USB_HCD_SSB is not set -# CONFIG_USB_HCD_TEST_MODE is not set -CONFIG_USB_HIDDEV=y -CONFIG_USB_HID=y -CONFIG_USB_HSIC_USB3503=m -CONFIG_USB_HSIC_USB4604=m -CONFIG_USB_HSO=m -CONFIG_USB_HUB_USB251XB=m -CONFIG_USB_HWA_HCD=m -CONFIG_USB_IDMOUSE=m -CONFIG_USB_IOWARRIOR=m -CONFIG_USBIP_CORE=m -# CONFIG_USBIP_DEBUG is not set -CONFIG_USB_IPHETH=m -CONFIG_USBIP_HOST=m -CONFIG_USBIP_VHCI_HCD=m -CONFIG_USBIP_VHCI_HC_PORTS=8 -CONFIG_USBIP_VHCI_NR_HCS=1 -CONFIG_USBIP_VUDC=m -CONFIG_USB_IRDA=m -CONFIG_USB_ISIGHTFW=m -# CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1301 is not set -CONFIG_USB_ISP1362_HCD=m -# CONFIG_USB_ISP1760 is not set -CONFIG_USB_KAWETH=m -CONFIG_USB_KC2190=y -CONFIG_USB_KEENE=m -CONFIG_USB_LAN78XX=m -CONFIG_USB_LCD=m -CONFIG_USB_LD=m -CONFIG_USB_LEDS_TRIGGER_USBPORT=m -CONFIG_USB_LED_TRIG=y -CONFIG_USB_LEGOTOWER=m -# CONFIG_USB_LINK_LAYER_TEST is not set -CONFIG_USB_M5602=m -CONFIG_USB_MA901=m -# CONFIG_USB_MAX3421_HCD is not set -CONFIG_USB_MDC800=m -CONFIG_USB_MICROTEK=m -CONFIG_USB_MON=y -CONFIG_USB_MR800=m -# CONFIG_USB_MUSB_HDRC is not set -CONFIG_USB_NET_AX88179_178A=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_MBIM=m -CONFIG_USB_NET_CDC_NCM=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_NET_CH9200=m -CONFIG_USB_NET_CX82310_ETH=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_HUAWEI_CDC_NCM=m -CONFIG_USB_NET_INT51X1=m -CONFIG_USB_NET_KALMIA=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_QMI_WWAN=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_RNDIS_WLAN=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_SR9700=m -# CONFIG_USB_NET_SR9800 is not set -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_OHCI_HCD_PCI=y -# CONFIG_USB_OHCI_HCD_PLATFORM is not set -CONFIG_USB_OHCI_HCD_PPC_OF_BE=y -CONFIG_USB_OHCI_HCD_PPC_OF_LE=y -CONFIG_USB_OHCI_HCD_PPC_OF=y -# CONFIG_USB_OHCI_HCD_SSB is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OTG_FSM is not set -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OXU210HP_HCD is not set -CONFIG_USB_PCI=y -CONFIG_USBPCWATCHDOG=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_PHY=y -CONFIG_USB_PRINTER=m -CONFIG_USB_PULSE8_CEC=m -# CONFIG_USB_PWC_DEBUG is not set -CONFIG_USB_PWC_INPUT_EVDEV=y -CONFIG_USB_PWC=m -# CONFIG_USB_R8A66597_HCD is not set -CONFIG_USB_RAINSHADOW_CEC=m -# CONFIG_USB_RAREMONO is not set -# CONFIG_USB_RIO500 is not set -CONFIG_USB_RTL8150=m -CONFIG_USB_RTL8152=m -CONFIG_USB_S2255=m -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_CONSOLE=y -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYBERJACK=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_DEBUG=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_EMPEG=m -# CONFIG_USB_SERIAL_F81232 is not set -CONFIG_USB_SERIAL_F8153X=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_IUU=m -CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_PDA=m -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KLSI=m -CONFIG_USB_SERIAL_KOBIL_SCT=m -CONFIG_USB_SERIAL_MCT_U232=m -# CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -# CONFIG_USB_SERIAL_MXUPORT is not set -CONFIG_USB_SERIAL_NAVMAN=m -CONFIG_USB_SERIAL_OMNINET=m -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_OPTION=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_QCAUX=m -CONFIG_USB_SERIAL_QT2=m -CONFIG_USB_SERIAL_QUALCOMM=m -CONFIG_USB_SERIAL_SAFE=m -CONFIG_USB_SERIAL_SAFE_PADDED=y -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SIMPLE=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_SSU100=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -CONFIG_USB_SERIAL_UPD78F0730=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_WHITEHEAT=m -# CONFIG_USB_SERIAL_WISHBONE is not set -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_XSENS_MT=m -CONFIG_USB_SERIAL=y -CONFIG_USB_SEVSEG=m -CONFIG_USB_SI470X=m -# CONFIG_USB_SI4713 is not set -CONFIG_USB_SIERRA_NET=m -CONFIG_USB_SISUSBVGA_CON=y -CONFIG_USB_SISUSBVGA=m -# CONFIG_USB_SL811_CS is not set -CONFIG_USB_SL811_HCD_ISO=y -CONFIG_USB_SL811_HCD=m -CONFIG_USB_SNP_UDC_PLAT=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_STKWEBCAM=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -CONFIG_USB_STORAGE_DATAFAB=m -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_ENE_UB6250=m -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_REALTEK=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STV06XX=m -CONFIG_USB_SUPPORT=y -# CONFIG_USB_SWITCH_FSA9480 is not set -# CONFIG_USB_TEST is not set -CONFIG_USB_TMC=m -CONFIG_USB_TRANCEVIBRATOR=m -# CONFIG_USB_U132_HCD is not set -CONFIG_USB_UAS=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_UHCI_HCD=y -CONFIG_USB_ULPI_BUS=m -CONFIG_USB_USBNET=m -CONFIG_USB_USS720=m -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -CONFIG_USB_VIDEO_CLASS=m -CONFIG_USB_VL600=m -CONFIG_USB_WDM=m -# CONFIG_USB_WHCI_HCD is not set -# CONFIG_USB_WUSB_CBAF_DEBUG is not set -CONFIG_USB_WUSB_CBAF=m -CONFIG_USB_WUSB=m -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_PLATFORM is not set -CONFIG_USB_XUSBATM=m -CONFIG_USB=y -CONFIG_USB_YUREX=m -# CONFIG_USB_ZD1201 is not set -CONFIG_USB_ZR364XX=m -# CONFIG_USELIB is not set -CONFIG_USERFAULTFD=y -# CONFIG_USERIO is not set -CONFIG_USER_NS=y -# CONFIG_USE_THIN_ARCHIVES is not set -CONFIG_UTS_NS=y -CONFIG_UWB_HWA=m -CONFIG_UWB_I1480U=m -CONFIG_UWB=m -CONFIG_UWB_WHCI=m -# CONFIG_V4L2_FLASH_LED_CLASS is not set -CONFIG_V4L_MEM2MEM_DRIVERS=y -# CONFIG_V4L_PLATFORM_DRIVERS is not set -# CONFIG_V4L_TEST_DRIVERS is not set -# CONFIG_VCNL4000 is not set -# CONFIG_VEML6070 is not set -CONFIG_VETH=m -# CONFIG_VF610_ADC is not set -# CONFIG_VF610_DAC is not set -CONFIG_VFAT_FS=m -# CONFIG_VFIO_IOMMU_TYPE1 is not set -CONFIG_VFIO=m -CONFIG_VFIO_MDEV_DEVICE=m -CONFIG_VFIO_MDEV=m -# CONFIG_VFIO_NOIOMMU is not set -CONFIG_VFIO_PCI=m -CONFIG_VGA_ARB_MAX_GPUS=16 -CONFIG_VGA_ARB=y -# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set -CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 -CONFIG_VGACON_SOFT_SCROLLBACK=y -CONFIG_VGA_CONSOLE=y -# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set -CONFIG_VHOST_NET=m -CONFIG_VHOST_SCSI=m -CONFIG_VHOST_VSOCK=m -CONFIG_VIA_FIR=m -CONFIG_VIA_RHINE=m -CONFIG_VIA_RHINE_MMIO=y -CONFIG_VIA_VELOCITY=m -# CONFIG_VIDEO_ADV_DEBUG is not set -CONFIG_VIDEO_AU0828=m -# CONFIG_VIDEO_AU0828_RC is not set -CONFIG_VIDEO_AU0828_V4L2=y -CONFIG_VIDEO_BT848=m -CONFIG_VIDEO_CAFE_CCIC=m -CONFIG_VIDEO_CPIA2=m -# CONFIG_VIDEO_CPIA is not set -CONFIG_VIDEO_CX18_ALSA=m -CONFIG_VIDEO_CX18=m -CONFIG_VIDEO_CX231XX_ALSA=m -CONFIG_VIDEO_CX231XX_DVB=m -CONFIG_VIDEO_CX231XX=m -CONFIG_VIDEO_CX231XX_RC=y -CONFIG_VIDEO_CX23885=m -# CONFIG_VIDEO_CX25821 is not set -CONFIG_VIDEO_CX88_ALSA=m -CONFIG_VIDEO_CX88_BLACKBIRD=m -CONFIG_VIDEO_CX88_DVB=m -CONFIG_VIDEO_CX88_ENABLE_VP3054=y -CONFIG_VIDEO_CX88=m -CONFIG_VIDEO_CX88_VP3054=m -CONFIG_VIDEO_DEV=m -# CONFIG_VIDEO_DT3155 is not set -CONFIG_VIDEO_EM28XX_ALSA=m -CONFIG_VIDEO_EM28XX_DVB=m -CONFIG_VIDEO_EM28XX=m -CONFIG_VIDEO_EM28XX_RC=m -CONFIG_VIDEO_EM28XX_V4L2=m -CONFIG_VIDEO_FB_IVTV=m -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_GO7007_LOADER=m -CONFIG_VIDEO_GO7007=m -CONFIG_VIDEO_GO7007_USB=m -CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m -CONFIG_VIDEO_HDPVR=m -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_HEXIUM_ORION=m -# CONFIG_VIDEO_IVTV_ALSA is not set -# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set -CONFIG_VIDEO_IVTV=m -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set -CONFIG_VIDEO_MEYE=m -CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_NOON010PC30=m -# CONFIG_VIDEO_PCI_SKELETON is not set -# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set -CONFIG_VIDEO_PVRUSB2_DVB=y -CONFIG_VIDEO_PVRUSB2=m -CONFIG_VIDEO_PVRUSB2_SYSFS=y -CONFIG_VIDEO_SAA6588=m -CONFIG_VIDEO_SAA7134_ALSA=m -CONFIG_VIDEO_SAA7134_DVB=m -CONFIG_VIDEO_SAA7134_GO7007=m -CONFIG_VIDEO_SAA7134=m -CONFIG_VIDEO_SAA7134_RC=y -CONFIG_VIDEO_SAA7146=m -CONFIG_VIDEO_SAA7146_VV=m -CONFIG_VIDEO_SAA7164=m -# CONFIG_VIDEO_SH_MOBILE_CEU is not set -# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set -# CONFIG_VIDEO_SH_VEU is not set -CONFIG_VIDEO_SOLO6X10=m -CONFIG_VIDEO_SR030PC30=m -CONFIG_VIDEO_STK1160_AC97=y -CONFIG_VIDEO_STK1160_COMMON=m -CONFIG_VIDEO_STK1160=m -CONFIG_VIDEO_TM6000_ALSA=m -CONFIG_VIDEO_TM6000_DVB=m -CONFIG_VIDEO_TM6000=m -CONFIG_VIDEO_TUNER=m -# CONFIG_VIDEO_TW5864 is not set -# CONFIG_VIDEO_TW686X_KH is not set -CONFIG_VIDEO_TW686X=m -# CONFIG_VIDEO_TW68 is not set -CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_V4L2_SUBDEV_API=y -# CONFIG_VIDEO_VIVID is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_XILINX is not set -CONFIG_VIDEO_ZORAN_AVS6EYES=m -CONFIG_VIDEO_ZORAN_BUZ=m -CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_DC30=m -# CONFIG_VIDEO_ZORAN is not set -CONFIG_VIDEO_ZORAN_LML33=m -CONFIG_VIDEO_ZORAN_LML33R10=m -CONFIG_VIDEO_ZORAN_ZR36060=m -# CONFIG_VIPERBOARD_ADC is not set -# CONFIG_VIRT_DRIVERS is not set -CONFIG_VIRTIO_BALLOON=m -CONFIG_VIRTIO_BLK=m -# CONFIG_VIRTIO_BLK_SCSI is not set -CONFIG_VIRTIO_CONSOLE=m -CONFIG_VIRTIO_INPUT=m -# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set -CONFIG_VIRTIO_MMIO=m -CONFIG_VIRTIO_NET=m -CONFIG_VIRTIO_PCI_LEGACY=y -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_VSOCKETS=m -CONFIG_VIRTUALIZATION=y -CONFIG_VITESSE_PHY=m -CONFIG_VL6180=m -CONFIG_VLAN_8021Q_GVRP=y -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_MVRP=y -CONFIG_VLSI_FIR=m -# CONFIG_VME_BUS is not set -# CONFIG_VMXNET3 is not set -CONFIG_VORTEX=m -CONFIG_VSOCKETS=m -CONFIG_VSOCKMON=m -CONFIG_VSX=y -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set -CONFIG_VT_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_VT=y -# CONFIG_VXFS_FS is not set -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_VXGE=m -CONFIG_VXLAN=m -# CONFIG_VZ89X is not set -CONFIG_W1_CON=y -CONFIG_W1=m -# CONFIG_W1_MASTER_DS1WM is not set -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS2490=m -# CONFIG_W1_MASTER_GPIO is not set -# CONFIG_W1_MASTER_MATROX is not set -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_W1_SLAVE_DS2405=m -CONFIG_W1_SLAVE_DS2406=m -CONFIG_W1_SLAVE_DS2408=m -# CONFIG_W1_SLAVE_DS2408_READBACK is not set -CONFIG_W1_SLAVE_DS2413=m -CONFIG_W1_SLAVE_DS2423=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2438=m -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_DS2780=m -CONFIG_W1_SLAVE_DS2781=m -CONFIG_W1_SLAVE_DS28E04=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_THERM=m -CONFIG_W83627HF_WDT=m -CONFIG_W83877F_WDT=m -CONFIG_W83977F_WDT=m -# CONFIG_WAFER_WDT is not set -# CONFIG_WAN is not set -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -CONFIG_WATCHDOG_CORE=y -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -# CONFIG_WATCHDOG_NOWAYOUT is not set -# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set -CONFIG_WATCHDOG_RTAS=m -CONFIG_WATCHDOG_SYSFS=y -CONFIG_WATCHDOG=y -# CONFIG_WCN36XX_DEBUGFS is not set -CONFIG_WCN36XX=m -CONFIG_WDAT_WDT=m -CONFIG_WDTPCI=m -CONFIG_WIL6210_ISR_COR=y -CONFIG_WIL6210=m -# CONFIG_WIL6210_TRACING is not set -# CONFIG_WILC1000_SDIO is not set -# CONFIG_WILC1000_SPI is not set -CONFIG_WILINK_PLATFORM_DATA=y -# CONFIG_WIMAX is not set -CONFIG_WINBOND_840=m -CONFIG_WINBOND_FIR=m -# CONFIG_WINDFARM is not set -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS=y -CONFIG_WIZNET_W5100=m -CONFIG_WIZNET_W5100_SPI=m -CONFIG_WIZNET_W5300=m -CONFIG_WL1251=m -CONFIG_WL1251_SDIO=m -CONFIG_WL1251_SPI=m -CONFIG_WL12XX=m -CONFIG_WL18XX=m -# CONFIG_WLAN_VENDOR_ADMTEK is not set -CONFIG_WLAN_VENDOR_ATH=y -# CONFIG_WLAN_VENDOR_ATMEL is not set -CONFIG_WLAN_VENDOR_BROADCOM=y -# CONFIG_WLAN_VENDOR_CISCO is not set -CONFIG_WLAN_VENDOR_INTEL=y -CONFIG_WLAN_VENDOR_INTERSIL=y -CONFIG_WLAN_VENDOR_MARVELL=y -CONFIG_WLAN_VENDOR_MEDIATEK=y -CONFIG_WLAN_VENDOR_QUANTENNA=y -CONFIG_WLAN_VENDOR_RALINK=y -CONFIG_WLAN_VENDOR_REALTEK=y -CONFIG_WLAN_VENDOR_RSI=y -CONFIG_WLAN_VENDOR_ST=y -CONFIG_WLAN_VENDOR_TI=y -CONFIG_WLAN_VENDOR_ZYDAS=y -CONFIG_WLAN=y -CONFIG_WLCORE=m -CONFIG_WLCORE_SDIO=m -CONFIG_WLCORE_SPI=m -# CONFIG_WM831X_POWER is not set -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_POWER=m -CONFIG_WM8350_WATCHDOG=m -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set -CONFIG_WQ_WATCHDOG=y -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_X25 is not set -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -CONFIG_X86_MCELOG_LEGACY=y -CONFIG_X86_PTDUMP=y -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_SUB_POLICY=y -CONFIG_XFRM_USER=y -CONFIG_XFRM=y -# CONFIG_XFS_DEBUG is not set -CONFIG_XFS_FS=m -CONFIG_XFS_POSIX_ACL=y -CONFIG_XFS_QUOTA=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_WARN is not set -# CONFIG_XILINX_DMA is not set -# CONFIG_XILINX_EMACLITE is not set -CONFIG_XILINX_GMII2RGMII=m -# CONFIG_XILINX_LL_TEMAC is not set -# CONFIG_XILINX_WATCHDOG is not set -CONFIG_XILLYBUS=m -# CONFIG_XILLYBUS_OF is not set -CONFIG_XILLYBUS_PCIE=m -# CONFIG_XMON_DEFAULT is not set -CONFIG_XMON_DISASSEMBLY=y -CONFIG_XMON=y -# CONFIG_XPS_USB_HCD_XILINX is not set -CONFIG_XZ_DEC_IA64=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_SPARC=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC=y -CONFIG_YAM=m -CONFIG_YELLOWFIN=m -CONFIG_YENTA=m -CONFIG_Z3FOLD=y -CONFIG_ZBUD=y -# CONFIG_ZD1211RW_DEBUG is not set -CONFIG_ZD1211RW=m -CONFIG_ZEROPLUS_FF=y -# CONFIG_ZIIRAVE_WATCHDOG is not set -CONFIG_ZISOFS=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZLIB_INFLATE=y -# CONFIG_ZONE_DEVICE is not set -# CONFIG_ZPA2326 is not set -CONFIG_ZRAM=m -# CONFIG_ZSMALLOC_STAT is not set -CONFIG_ZSMALLOC=y -CONFIG_ZSWAP=y -# CONFIG_ZX_TDM is not set diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config deleted file mode 100644 index ef85e80b1..000000000 --- a/kernel-ppc64p7.config +++ /dev/null @@ -1,5771 +0,0 @@ -# powerpc -# CONFIG_3C515 is not set -# CONFIG_60XX_WDT is not set -CONFIG_6LOWPAN_DEBUGFS=y -CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m -CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m -CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m -CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m -CONFIG_6LOWPAN_GHC_ICMPV6=m -CONFIG_6LOWPAN_GHC_UDP=m -CONFIG_6LOWPAN=m -CONFIG_6LOWPAN_NHC_DEST=m -CONFIG_6LOWPAN_NHC_FRAGMENT=m -CONFIG_6LOWPAN_NHC_HOP=m -CONFIG_6LOWPAN_NHC_IPV6=m -CONFIG_6LOWPAN_NHC=m -CONFIG_6LOWPAN_NHC_MOBILITY=m -CONFIG_6LOWPAN_NHC_ROUTING=m -CONFIG_6LOWPAN_NHC_UDP=m -CONFIG_6PACK=m -CONFIG_8139CP=m -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_8139TOO_8129=y -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8723AU_AP_MODE is not set -# CONFIG_8723AU_BT_COEXIST is not set -CONFIG_9P_FSCACHE=y -CONFIG_9P_FS=m -CONFIG_9P_FS_POSIX_ACL=y -CONFIG_9P_FS_SECURITY=y -CONFIG_A11Y_BRAILLE_CONSOLE=y -# CONFIG_AB3100_CORE is not set -# CONFIG_AB3100_OTP is not set -CONFIG_ABP060MG=m -# CONFIG_ABX500_CORE is not set -CONFIG_ACCESSIBILITY=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -# CONFIG_ACORN_PARTITION is not set -CONFIG_ACPI_ALS=m -# CONFIG_ACPI_DEBUGGER is not set -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_NFIT is not set -CONFIG_ACPI_PCI_SLOT=y -# CONFIG_ACQUIRE_WDT is not set -CONFIG_ACT200L_DONGLE=m -CONFIG_ACTISYS_DONGLE=m -# CONFIG_AD2S1200 is not set -# CONFIG_AD2S1210 is not set -# CONFIG_AD2S90 is not set -# CONFIG_AD5064 is not set -# CONFIG_AD525X_DPOT is not set -# CONFIG_AD5360 is not set -# CONFIG_AD5380 is not set -# CONFIG_AD5421 is not set -# CONFIG_AD5446 is not set -# CONFIG_AD5449 is not set -# CONFIG_AD5504 is not set -# CONFIG_AD5592R is not set -# CONFIG_AD5593R is not set -# CONFIG_AD5624R_SPI is not set -# CONFIG_AD5686 is not set -# CONFIG_AD5755 is not set -# CONFIG_AD5761 is not set -# CONFIG_AD5764 is not set -# CONFIG_AD5791 is not set -# CONFIG_AD5933 is not set -# CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7266 is not set -# CONFIG_AD7280 is not set -# CONFIG_AD7291 is not set -# CONFIG_AD7298 is not set -# CONFIG_AD7303 is not set -# CONFIG_AD7476 is not set -# CONFIG_AD7606 is not set -# CONFIG_AD7746 is not set -CONFIG_AD7766=m -# CONFIG_AD7780 is not set -# CONFIG_AD7791 is not set -# CONFIG_AD7793 is not set -# CONFIG_AD7816 is not set -# CONFIG_AD7887 is not set -# CONFIG_AD7923 is not set -# CONFIG_AD799X is not set -# CONFIG_AD8366 is not set -# CONFIG_AD8801 is not set -# CONFIG_AD9523 is not set -# CONFIG_AD9832 is not set -# CONFIG_AD9834 is not set -CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADE7753 is not set -# CONFIG_ADE7754 is not set -# CONFIG_ADE7758 is not set -# CONFIG_ADE7759 is not set -# CONFIG_ADE7854 is not set -# CONFIG_ADF4350 is not set -# CONFIG_ADFS_FS is not set -# CONFIG_ADIS16060 is not set -# CONFIG_ADIS16080 is not set -# CONFIG_ADIS16130 is not set -# CONFIG_ADIS16136 is not set -# CONFIG_ADIS16201 is not set -# CONFIG_ADIS16203 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADIS16240 is not set -# CONFIG_ADIS16260 is not set -# CONFIG_ADIS16400 is not set -# CONFIG_ADIS16480 is not set -# CONFIG_ADJD_S311 is not set -# CONFIG_ADM8211 is not set -# CONFIG_ADT7316 is not set -# CONFIG_ADVANTECH_WDT is not set -# CONFIG_ADXL345_I2C is not set -# CONFIG_ADXL345_SPI is not set -# CONFIG_ADXRS450 is not set -# CONFIG_AFE4403 is not set -# CONFIG_AFE4404 is not set -CONFIG_AFFS_FS=m -# CONFIG_AF_KCM is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_AFS_FS is not set -# CONFIG_AGP is not set -# CONFIG_AHCI_CEVA is not set -# CONFIG_AHCI_QORIQ is not set -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set -CONFIG_AIC79XX_CMDS_PER_DEVICE=4 -# CONFIG_AIC79XX_DEBUG_ENABLE is not set -CONFIG_AIC79XX_DEBUG_MASK=0 -# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set -CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIRO_CS is not set -# CONFIG_AIRO is not set -CONFIG_AIX_PARTITION=y -# CONFIG_AK09911 is not set -# CONFIG_AK8974 is not set -# CONFIG_AK8975 is not set -# CONFIG_AL3320A is not set -CONFIG_ALI_FIR=m -CONFIG_ALIM1535_WDT=m -CONFIG_ALIM7101_WDT=m -# CONFIG_ALTERA_MBOX is not set -CONFIG_ALTERA_STAPL=m -CONFIG_ALTERA_TSE=m -CONFIG_ALTIVEC=y -CONFIG_ALX=m -# CONFIG_AM2315 is not set -CONFIG_AMD8111_ETH=m -CONFIG_AMD_PHY=m -# CONFIG_AMD_XGBE_DCB is not set -# CONFIG_AMD_XGBE is not set -# CONFIG_AMIGAONE is not set -CONFIG_AMIGA_PARTITION=y -# CONFIG_ANDROID is not set -# CONFIG_APDS9300 is not set -CONFIG_APDS9802ALS=m -# CONFIG_APDS9960 is not set -CONFIG_APM_POWER=m -# CONFIG_APPLE_PROPERTIES is not set -# CONFIG_APPLICOM is not set -CONFIG_AQUANTIA_PHY=m -CONFIG_AR5523=m -# CONFIG_ARCNET is not set -CONFIG_ARM64_ERRATUM_858921=y -# CONFIG_AS3935 is not set -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYNC_RAID6_TEST=m -CONFIG_ASYNC_TX_DMA=y -CONFIG_AT76C50X_USB=m -CONFIG_AT803X_PHY=m -CONFIG_ATA_BMDMA=y -CONFIG_ATA_GENERIC=m -CONFIG_ATALK=m -CONFIG_ATA_OVER_ETH=m -CONFIG_ATA_PIIX=y -# CONFIG_ATARI_PARTITION is not set -CONFIG_ATA_SFF=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA=y -# CONFIG_ATH10K_AHB is not set -CONFIG_ATH10K_DEBUGFS=y -# CONFIG_ATH10K_DEBUG is not set -CONFIG_ATH10K=m -CONFIG_ATH10K_PCI=m -CONFIG_ATH10K_SDIO=m -# CONFIG_ATH10K_TRACING is not set -CONFIG_ATH5K_DEBUG=y -CONFIG_ATH5K=m -# CONFIG_ATH5K_TRACER is not set -CONFIG_ATH6KL_DEBUG=y -CONFIG_ATH6KL=m -CONFIG_ATH6KL_SDIO=m -# CONFIG_ATH6KL_TRACING is not set -CONFIG_ATH6KL_USB=m -CONFIG_ATH9K_AHB=y -CONFIG_ATH9K_BTCOEX_SUPPORT=y -# CONFIG_ATH9K_CHANNEL_CONTEXT is not set -CONFIG_ATH9K_DEBUGFS=y -# CONFIG_ATH9K_DEBUG is not set -# CONFIG_ATH9K_DYNACK is not set -# CONFIG_ATH9K_HTC_DEBUGFS is not set -CONFIG_ATH9K_HTC=m -# CONFIG_ATH9K_HWRNG is not set -CONFIG_ATH9K=m -CONFIG_ATH9K_PCI=y -# CONFIG_ATH9K_STATION_STATISTICS is not set -# CONFIG_ATH9K_WOW is not set -CONFIG_ATH_COMMON=m -# CONFIG_ATH_DEBUG is not set -# CONFIG_ATH_TRACEPOINTS is not set -CONFIG_ATL1C=m -CONFIG_ATL1E=m -CONFIG_ATL1=m -CONFIG_ATL2=m -# CONFIG_ATLAS_PH_SENSOR is not set -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -# CONFIG_ATM_AMBASSADOR is not set -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_ATM_BR2684=m -CONFIG_ATM_CLIP=m -# CONFIG_ATM_CLIP_NO_ICMP is not set -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -# CONFIG_ATMEL is not set -# CONFIG_ATM_ENI_DEBUG is not set -CONFIG_ATM_ENI=m -# CONFIG_ATM_ENI_TUNE_BURST is not set -# CONFIG_ATM_FIRESTREAM is not set -CONFIG_ATM_FORE200E_DEBUG=0 -# CONFIG_ATM_FORE200E is not set -CONFIG_ATM_FORE200E_TX_RETRY=16 -# CONFIG_ATM_FORE200E_USE_TASKLET is not set -CONFIG_ATM_HE=m -# CONFIG_ATM_HE_USE_SUNI is not set -# CONFIG_ATM_HORIZON_DEBUG is not set -# CONFIG_ATM_HORIZON is not set -# CONFIG_ATM_IA_DEBUG is not set -# CONFIG_ATM_IA is not set -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252 is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -# CONFIG_ATM_LANAI is not set -CONFIG_ATM_LANE=m -CONFIG_ATM=m -# CONFIG_ATM_MPOA is not set -CONFIG_ATM_NICSTAR=m -# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set -# CONFIG_ATM_NICSTAR_USE_SUNI is not set -CONFIG_ATM_SOLOS=m -CONFIG_ATM_TCP=m -# CONFIG_ATM_ZATM_DEBUG is not set -# CONFIG_ATM_ZATM is not set -CONFIG_ATOMIC64_SELFTEST=y -CONFIG_ATP=m -CONFIG_AUDITSYSCALL=y -CONFIG_AUDIT=y -CONFIG_AUTOFS4_FS=y -CONFIG_AUXDISPLAY=y -# CONFIG_AVERAGE is not set -CONFIG_AX25_DAMA_SLAVE=y -CONFIG_AX25=m -# CONFIG_AXON_RAM is not set -CONFIG_B43_BCMA_PIO=y -CONFIG_B43_BCMA=y -# CONFIG_B43_DEBUG is not set -# CONFIG_B43LEGACY_DEBUG is not set -CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y -# CONFIG_B43LEGACY_DMA_MODE is not set -CONFIG_B43LEGACY_DMA=y -CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_PIO_MODE is not set -CONFIG_B43LEGACY_PIO=y -CONFIG_B43=m -CONFIG_B43_PHY_G=y -CONFIG_B43_PHY_HT=y -CONFIG_B43_PHY_LP=y -CONFIG_B43_PHY_N=y -CONFIG_B43_SDIO=y -CONFIG_B44=m -CONFIG_B44_PCI=y -CONFIG_B53=m -CONFIG_B53_MDIO_DRIVER=m -CONFIG_B53_MMAP_DRIVER=m -CONFIG_B53_SPI_DRIVER=m -CONFIG_B53_SRAB_DRIVER=m -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -CONFIG_BACKLIGHT_ARCXCNN=m -# CONFIG_BACKLIGHT_BD6107 is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_GENERIC is not set -# CONFIG_BACKLIGHT_GPIO is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -# CONFIG_BACKLIGHT_LM3630A is not set -# CONFIG_BACKLIGHT_LM3630 is not set -# CONFIG_BACKLIGHT_LM3639 is not set -CONFIG_BACKLIGHT_LP855X=m -# CONFIG_BACKLIGHT_LV5207LP is not set -# CONFIG_BACKLIGHT_PM8941_WLED is not set -CONFIG_BACKLIGHT_PWM=m -# CONFIG_BACKLIGHT_SAHARA is not set -CONFIG_BACKLIGHT_WM831X=m -# CONFIG_BACKTRACE_SELF_TEST is not set -CONFIG_BALLOON_COMPACTION=y -CONFIG_BATMAN_ADV_BATMAN_V=y -CONFIG_BATMAN_ADV_BLA=y -CONFIG_BATMAN_ADV_DAT=y -# CONFIG_BATMAN_ADV_DEBUGFS is not set -# CONFIG_BATMAN_ADV_DEBUG is not set -CONFIG_BATMAN_ADV=m -CONFIG_BATMAN_ADV_MCAST=y -CONFIG_BATMAN_ADV_NC=y -# CONFIG_BATTERY_BQ27XXX is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2781 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_GAUGE_LTC2941 is not set -# CONFIG_BATTERY_LEGO_EV3 is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_BATTERY_SBS is not set -CONFIG_BAYCOM_EPP=m -CONFIG_BAYCOM_PAR=m -CONFIG_BAYCOM_SER_FDX=m -CONFIG_BAYCOM_SER_HDX=m -# CONFIG_BCACHE_CLOSURES_DEBUG is not set -# CONFIG_BCACHE_DEBUG is not set -CONFIG_BCACHE=m -# CONFIG_BCM2835_VCHIQ is not set -CONFIG_BCM63XX_PHY=m -# CONFIG_BCM7038_WDT is not set -CONFIG_BCM7XXX_PHY=m -CONFIG_BCM87XX_PHY=m -CONFIG_BCMA_BLOCKIO=y -# CONFIG_BCMA_DEBUG is not set -CONFIG_BCMA_DRIVER_GMAC_CMN=y -CONFIG_BCMA_DRIVER_GPIO=y -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -CONFIG_BCMA_HOST_PCI=y -# CONFIG_BCMA_HOST_SOC is not set -CONFIG_BCMA=m -# CONFIG_BCM_FLEXRM_MBOX is not set -CONFIG_BCMGENET=m -# CONFIG_BCM_KONA_USB2_PHY is not set -CONFIG_BE2ISCSI=m -# CONFIG_BE2NET_HWMON is not set -CONFIG_BE2NET=m -# CONFIG_BEFS_DEBUG is not set -CONFIG_BEFS_FS=m -CONFIG_BFQ_GROUP_IOSCHED=y -# CONFIG_BFS_FS is not set -CONFIG_BH1750=m -# CONFIG_BH1780 is not set -CONFIG_BIG_KEYS=y -# CONFIG_BINFMT_AOUT is not set -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_FLAT is not set -CONFIG_BINFMT_MISC=m -CONFIG_BINFMT_SCRIPT=y -CONFIG_BLK_CGROUP=y -# CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m -CONFIG_BLK_DEBUG_FS=y -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_BLK_DEV_BSGLIB=y -CONFIG_BLK_DEV_BSG=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -CONFIG_BLK_DEV_DAC960=m -CONFIG_BLK_DEV_DM=y -CONFIG_BLK_DEV_DRBD=m -CONFIG_BLK_DEV_FD=m -CONFIG_BLK_DEV_INITRD=y -CONFIG_BLK_DEV_INTEGRITY=y -CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_BLK_DEV_IT8172=m -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 -CONFIG_BLK_DEV_MD=y -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_NULL_BLK=m -CONFIG_BLK_DEV_NVME=m -# CONFIG_BLK_DEV_NVME_SCSI is not set -CONFIG_BLK_DEV_OSD=m -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_BLK_DEV_PLATFORM is not set -CONFIG_BLK_DEV_PMEM=m -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_DAX=y -CONFIG_BLK_DEV_RAM=m -CONFIG_BLK_DEV_RAM_SIZE=16384 -CONFIG_BLK_DEV_RBD=m -CONFIG_BLK_DEV_RSXX=m -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_DEV_SKD=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_BLK_DEV_SR=y -CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_THROTTLING_LOW is not set -CONFIG_BLK_DEV_THROTTLING=y -CONFIG_BLK_DEV_UMEM=m -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_ZONED=y -CONFIG_BLK_SED_OPAL=y -CONFIG_BLK_WBT_MQ=y -# CONFIG_BLK_WBT_SQ is not set -CONFIG_BLK_WBT=y -# CONFIG_BMA180 is not set -# CONFIG_BMA220 is not set -CONFIG_BMC150_ACCEL=m -# CONFIG_BMC150_MAGN_I2C is not set -# CONFIG_BMC150_MAGN is not set -# CONFIG_BMC150_MAGN_SPI is not set -# CONFIG_BMG160 is not set -# CONFIG_BMI160_I2C is not set -# CONFIG_BMI160_SPI is not set -CONFIG_BMP280=m -CONFIG_BNA=m -CONFIG_BNX2=m -CONFIG_BNX2X=m -CONFIG_BNX2X_SRIOV=y -CONFIG_BNXT_DCB=y -CONFIG_BNXT=m -CONFIG_BNXT_SRIOV=y -CONFIG_BONDING=m -# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set -# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOT_PRINTK_DELAY=y -CONFIG_BOOTX_TEXT=y -CONFIG_BOUNCE=y -CONFIG_BPF_JIT=y -CONFIG_BPF_SYSCALL=y -CONFIG_BPQETHER=m -# CONFIG_BRCMDBG is not set -CONFIG_BRCMFMAC=m -CONFIG_BRCMFMAC_PCIE=y -CONFIG_BRCMFMAC_SDIO=y -CONFIG_BRCMFMAC_USB=y -CONFIG_BRCMSMAC=m -# CONFIG_BRCMSTB_GISB_ARB is not set -# CONFIG_BRCM_TRACING is not set -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_NFLOG=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_IGMP_SNOOPING=y -CONFIG_BRIDGE=m -CONFIG_BRIDGE_NETFILTER=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_VLAN_FILTERING=y -CONFIG_BROADCOM_PHY=m -CONFIG_BSD_DISKLABEL=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BT_6LOWPAN=m -CONFIG_BT_ATH3K=m -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_BREDR=y -CONFIG_BT_CMTP=m -# CONFIG_BT_DEBUGFS is not set -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIBTUSB_BCM=y -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTUSB_RTL=y -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIUART_3WIRE=y -CONFIG_BT_HCIUART_AG6XX=y -CONFIG_BT_HCIUART_ATH3K=y -CONFIG_BT_HCIUART_BCM=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_INTEL=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_MRVL=y -CONFIG_BT_HCIUART_NOKIA=m -CONFIG_BT_HCIUART_QCA=y -CONFIG_BT_HCIUART_SERDEV=y -CONFIG_BT_HCIVHCI=m -CONFIG_BT_HIDP=m -CONFIG_BT_HS=y -CONFIG_BT_LEDS=y -CONFIG_BT_LE=y -CONFIG_BT=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_BT_QCA=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -# CONFIG_BTRFS_ASSERT is not set -# CONFIG_BTRFS_DEBUG is not set -# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set -CONFIG_BTRFS_FS=m -CONFIG_BTRFS_FS_POSIX_ACL=y -# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -# CONFIG_BT_SELFTEST is not set -# CONFIG_BTT is not set -CONFIG_BT_WILINK=m -CONFIG_BUG_ON_DATA_CORRUPTION=y -CONFIG_BUILD_DOCSRC=y -# CONFIG_C2PORT is not set -# CONFIG_CACHEFILES_DEBUG is not set -# CONFIG_CACHEFILES_HISTOGRAM is not set -CONFIG_CACHEFILES=m -# CONFIG_CADENCE_WATCHDOG is not set -# CONFIG_CAIF is not set -CONFIG_CAN_8DEV_USB=m -CONFIG_CAN_BCM=m -CONFIG_CAN_CALC_BITTIMING=y -# CONFIG_CAN_CC770_ISA is not set -CONFIG_CAN_CC770=m -CONFIG_CAN_CC770_PLATFORM=m -CONFIG_CAN_C_CAN=m -CONFIG_CAN_C_CAN_PCI=m -CONFIG_CAN_C_CAN_PLATFORM=m -# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_CAN_DEV=m -CONFIG_CAN_EMS_PCI=m -# CONFIG_CAN_EMS_PCMCIA is not set -CONFIG_CAN_EMS_USB=m -CONFIG_CAN_ESD_USB2=m -# CONFIG_CAN_FLEXCAN is not set -# CONFIG_CAN_GRCAN is not set -CONFIG_CAN_GS_USB=m -CONFIG_CAN_GW=m -CONFIG_CAN_HI311X=m -CONFIG_CAN_IFI_CANFD=m -CONFIG_CAN_KVASER_PCI=m -CONFIG_CAN_KVASER_USB=m -CONFIG_CAN_LEDS=y -CONFIG_CAN=m -CONFIG_CAN_M_CAN=m -CONFIG_CAN_MCBA_USB=m -# CONFIG_CAN_MCP251X is not set -# CONFIG_CAN_MPC5XXX is not set -# CONFIG_CAN_MSCAN is not set -CONFIG_CAN_PEAK_PCIEC=y -CONFIG_CAN_PEAK_PCIEFD=m -CONFIG_CAN_PEAK_PCI=m -# CONFIG_CAN_PEAK_PCMCIA is not set -CONFIG_CAN_PEAK_USB=m -CONFIG_CAN_PLX_PCI=m -CONFIG_CAN_RAW=m -# CONFIG_CAN_SJA1000_ISA is not set -CONFIG_CAN_SJA1000=m -CONFIG_CAN_SJA1000_PLATFORM=m -CONFIG_CAN_SLCAN=m -# CONFIG_CAN_SOFTING_CS is not set -CONFIG_CAN_SOFTING=m -# CONFIG_CAN_TSCAN1 is not set -CONFIG_CAN_VCAN=m -CONFIG_CAN_VXCAN=m -# CONFIG_CAN_XILINXCAN is not set -CONFIG_CAPI_AVM=y -CONFIG_CAPI_EICON=y -# CONFIG_CAPI_TRACE is not set -CONFIG_CARDBUS=y -CONFIG_CARDMAN_4000=m -CONFIG_CARDMAN_4040=m -# CONFIG_CARL9170_DEBUGFS is not set -# CONFIG_CARL9170_HWRNG is not set -CONFIG_CARL9170_LEDS=y -CONFIG_CARL9170=m -CONFIG_CASSINI=m -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -# CONFIG_CC10001_ADC is not set -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -CONFIG_CDROM_PKTCDVD=m -# CONFIG_CDROM_PKTCDVD_WCACHE is not set -CONFIG_CEC_PLATFORM_DRIVERS=y -CONFIG_CEPH_FSCACHE=y -CONFIG_CEPH_FS=m -CONFIG_CEPH_FS_POSIX_ACL=y -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set -CONFIG_CFAG12864B=m -CONFIG_CFAG12864B_RATE=20 -CONFIG_CFG80211_CRDA_SUPPORT=y -CONFIG_CFG80211_DEBUGFS=y -CONFIG_CFG80211_DEFAULT_PS=y -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -CONFIG_CFG80211=m -CONFIG_CFG80211_WEXT=y -CONFIG_CFQ_GROUP_IOSCHED=y -CONFIG_CFS_BANDWIDTH=y -CONFIG_CGROUP_BPF=y -CONFIG_CGROUP_CPUACCT=y -# CONFIG_CGROUP_DEBUG is not set -CONFIG_CGROUP_DEVICE=y -CONFIG_CGROUP_FREEZER=y -CONFIG_CGROUP_HUGETLB=y -CONFIG_CGROUP_NET_CLASSID=y -CONFIG_CGROUP_NET_PRIO=y -CONFIG_CGROUP_PERF=y -CONFIG_CGROUP_PIDS=y -# CONFIG_CGROUP_RDMA is not set -CONFIG_CGROUP_SCHED=y -CONFIG_CGROUPS=y -# CONFIG_CHARGER_BQ2415X is not set -# CONFIG_CHARGER_BQ24190 is not set -# CONFIG_CHARGER_BQ24257 is not set -# CONFIG_CHARGER_BQ24735 is not set -# CONFIG_CHARGER_BQ25890 is not set -# CONFIG_CHARGER_DETECTOR_MAX14656 is not set -# CONFIG_CHARGER_GPIO is not set -# CONFIG_CHARGER_ISP1704 is not set -# CONFIG_CHARGER_LP8727 is not set -# CONFIG_CHARGER_LTC3651 is not set -# CONFIG_CHARGER_MAX8903 is not set -# CONFIG_CHARGER_PCF50633 is not set -# CONFIG_CHARGER_RT9455 is not set -# CONFIG_CHARGER_SBS is not set -CONFIG_CHARGER_SMB347=m -# CONFIG_CHECKPOINT_RESTORE is not set -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T3=m -CONFIG_CHELSIO_T4_DCB=y -# CONFIG_CHELSIO_T4_FCOE is not set -CONFIG_CHELSIO_T4=m -CONFIG_CHELSIO_T4VF=m -CONFIG_CHR_DEV_OSST=m -CONFIG_CHR_DEV_SCH=m -CONFIG_CHR_DEV_SG=y -CONFIG_CHR_DEV_ST=m -CONFIG_CHROME_PLATFORMS=y -CONFIG_CICADA_PHY=m -CONFIG_CIFS_ACL=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set -CONFIG_CIFS_DEBUG=y -CONFIG_CIFS_DFS_UPCALL=y -CONFIG_CIFS_FSCACHE=y -CONFIG_CIFS=m -CONFIG_CIFS_NFSD_EXPORT=y -CONFIG_CIFS_POSIX=y -CONFIG_CIFS_SMB2=y -# CONFIG_CIFS_SMB311 is not set -# CONFIG_CIFS_STATS2 is not set -CONFIG_CIFS_STATS=y -CONFIG_CIFS_UPCALL=y -CONFIG_CIFS_WEAK_PW_HASH=y -CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y -CONFIG_CLEANCACHE=y -# CONFIG_CLK_QORIQ is not set -CONFIG_CLS_U32_MARK=y -CONFIG_CLS_U32_PERF=y -CONFIG_CM32181=m -# CONFIG_CM3232 is not set -# CONFIG_CM3323 is not set -CONFIG_CM3605=m -# CONFIG_CM36651 is not set -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUGFS is not set -# CONFIG_CMA_DEBUG is not set -CONFIG_CMA=y -# CONFIG_CMDLINE_BOOL is not set -# CONFIG_CMDLINE_PARTITION is not set -CONFIG_CMM=y -CONFIG_CNIC=m -CONFIG_CODA_FS=m -# CONFIG_CODE_PATCHING_SELFTEST is not set -# CONFIG_COMEDI 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_COMMON_CLK_PWM is not set -# CONFIG_COMMON_CLK_SI514 is not set -# CONFIG_COMMON_CLK_SI5351 is not set -# CONFIG_COMMON_CLK_SI570 is not set -# CONFIG_COMMON_CLK_VC5 is not set -# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set -# CONFIG_COMMON_RESET_HI3660 is not set -CONFIG_COMPACTION=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_COMPILE_TEST is not set -CONFIG_CONFIGFS_FS=y -CONFIG_CONNECTOR=y -# CONFIG_CONSISTENT_SIZE_BOOL is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONTEXT_SWITCH_TRACER=y -CONFIG_CORDIC=m -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y -CONFIG_CORTINA_PHY=m -# CONFIG_CPU5_WDT is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPUFREQ_DT is not set -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_CPU_IDLE_GOV_LADDER is not set -CONFIG_CPU_IDLE=y -# CONFIG_CPU_LITTLE_ENDIAN is not set -CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPUSETS=y -# CONFIG_CPU_THERMAL is not set -CONFIG_CRAMFS=m -CONFIG_CRASH_DUMP=y -CONFIG_CRASH=m -CONFIG_CRC16=y -# CONFIG_CRC32_SELFTEST is not set -CONFIG_CRC32=y -CONFIG_CRC4=m -CONFIG_CRC7=m -CONFIG_CRC8=m -CONFIG_CRC_CCITT=y -CONFIG_CRC_ITU_T=m -CONFIG_CRC_T10DIF=y -CONFIG_CROS_KBD_LED_BACKLIGHT=m -CONFIG_CROSS_COMPILE="" -CONFIG_CROSS_MEMORY_ATTACH=y -CONFIG_CRYPTO_842=m -CONFIG_CRYPTO_AES_TI=m -CONFIG_CRYPTO_AES=y -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_AUTHENC=m -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_CHACHA20=m -CONFIG_CRYPTO_CHACHA20POLY1305=m -CONFIG_CRYPTO_CMAC=m -CONFIG_CRYPTO_CRC32C_VPMSUM=m -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRC32=m -CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m -# CONFIG_CRYPTO_CRYPTD is not set -CONFIG_CRYPTO_CTR=y -CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_DES=m -# CONFIG_CRYPTO_DEV_CCREE is not set -CONFIG_CRYPTO_DEV_CHELSIO=m -# CONFIG_CRYPTO_DEV_FSL_CAAM is not set -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y -CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m -CONFIG_CRYPTO_DEV_NX_COMPRESS=m -CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m -CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m -CONFIG_CRYPTO_DEV_NX_ENCRYPT=m -CONFIG_CRYPTO_DEV_NX=y -CONFIG_CRYPTO_DEV_VIRTIO=m -CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m -CONFIG_CRYPTO_DEV_VMX=y -CONFIG_CRYPTO_DH=y -CONFIG_CRYPTO_DRBG_CTR=y -CONFIG_CRYPTO_DRBG_HASH=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_ECDH=m -CONFIG_CRYPTO_ECHAINIV=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_KEYWRAP=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_LZ4HC=m -CONFIG_CRYPTO_LZ4=m -CONFIG_CRYPTO_LZO=y -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set -CONFIG_CRYPTO_MANAGER=y -# CONFIG_CRYPTO_MCRYPTD is not set -CONFIG_CRYPTO_MD4=m -# CONFIG_CRYPTO_MD5_PPC is not set -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_PCRYPT=m -CONFIG_CRYPTO_POLY1305=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_RSA=y -CONFIG_CRYPTO_SALSA20_586=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SERPENT=m -# CONFIG_CRYPTO_SHA1_PPC is not set -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA3=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_SIMD=y -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_USER_API_AEAD=y -CONFIG_CRYPTO_USER_API_HASH=y -CONFIG_CRYPTO_USER_API_RNG=y -CONFIG_CRYPTO_USER_API_SKCIPHER=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_VMAC=m -# CONFIG_CRYPTO_VPMSUM_TESTER is not set -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_XTS=y -CONFIG_CRYPTO=y -CONFIG_CUSE=m -CONFIG_CW1200=m -CONFIG_CW1200_WLAN_SDIO=m -CONFIG_CW1200_WLAN_SPI=m -# CONFIG_CX_ECAT is not set -CONFIG_CXLFLASH=m -CONFIG_CXL=m -CONFIG_CYCLADES=m -# CONFIG_CYZ_INTR is not set -CONFIG_DA280=m -CONFIG_DA311=m -CONFIG_DAVICOM_PHY=m -CONFIG_DCB=y -# CONFIG_DDR is not set -CONFIG_DE2104X_DSL=0 -CONFIG_DE2104X=m -CONFIG_DE4X5=m -CONFIG_DE_AOC=y -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_BLK_CGROUP is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -CONFIG_DEBUG_BOOT_PARAMS=y -# CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_DEBUG_DEVRES=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_DEBUG_FS=y -CONFIG_DEBUGGER=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_DEBUG_HIGHMEM=y -# CONFIG_DEBUG_HOTPLUG_CPU0 is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_REDUCED is not set -# CONFIG_DEBUG_INFO_SPLIT is not set -CONFIG_DEBUG_INFO_VTA=y -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_KMEMLEAK_TEST is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_KOBJECT_RELEASE is not set -CONFIG_DEBUG_LIST=y -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_LOCKDEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DEBUG_NX_TEST=m -CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_OBJECTS_SELFTEST is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_PAGE_REF is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -# CONFIG_DEBUG_PI_LIST is not set -# CONFIG_DEBUG_PINCTRL is not set -# CONFIG_DEBUG_REFCOUNT is not set -CONFIG_DEBUG_RODATA_TEST=y -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_DEBUG_SET_MODULE_RONX=y -# CONFIG_DEBUG_SG is not set -CONFIG_DEBUG_SHIRQ=y -# CONFIG_DEBUG_SPINLOCK is not set -CONFIG_DEBUG_STACKOVERFLOW=y -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_DEBUG_TIMEKEEPING is not set -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_VM_PGFLAGS is not set -# CONFIG_DEBUG_VM_RB is not set # revisit this if performance isn't horrible -# CONFIG_DEBUG_VM_VMACACHE is not set -CONFIG_DEBUG_VM=y -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DECNET is not set -CONFIG_DEFAULT_CFQ=y -CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set -# CONFIG_DEFXX is not set -# CONFIG_DETECT_HUNG_TASK is not set -CONFIG_DEV_APPLETALK=m -CONFIG_DEV_DAX=m -CONFIG_DEV_DAX_PMEM=m -# CONFIG_DEVFREQ_GOV_PASSIVE is not set -# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set -# CONFIG_DEVFREQ_GOV_POWERSAVE is not set -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m -# CONFIG_DEVFREQ_GOV_USERSPACE is not set -# CONFIG_DEVKMEM is not set -CONFIG_DEVMEM=y -CONFIG_DEVPORT=y -CONFIG_DEVTMPFS_MOUNT=y -CONFIG_DEVTMPFS=y -# CONFIG_DGAP is not set -# CONFIG_DGNC is not set -CONFIG_DHT11=m -CONFIG_DL2K=m -CONFIG_DLM_DEBUG=y -CONFIG_DLM=m -CONFIG_DM9102=m -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_DMA_CMA is not set -# CONFIG_DMADEVICES_DEBUG is not set -CONFIG_DMADEVICES=y -CONFIG_DMA_ENGINE=y -# CONFIG_DMA_FENCE_TRACE is not set -# CONFIG_DMARD06 is not set -# CONFIG_DMARD09 is not set -CONFIG_DMARD10=m -# CONFIG_DMATEST is not set -CONFIG_DM_CACHE_CLEANER=m -CONFIG_DM_CACHE=m -CONFIG_DM_CACHE_SMQ=m -CONFIG_DM_CRYPT=m -CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -CONFIG_DM_DEBUG=y -CONFIG_DM_DELAY=m -# CONFIG_DM_ERA is not set -CONFIG_DM_FLAKEY=m -CONFIG_DM_INTEGRITY=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_LOG_WRITES=m -CONFIG_DM_MIRROR=y -# CONFIG_DM_MQ_DEFAULT is not set -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_RAID=m -CONFIG_DM_SNAPSHOT=y -CONFIG_DM_SWITCH=m -CONFIG_DM_THIN_PROVISIONING=m -CONFIG_DM_UEVENT=y -CONFIG_DM_VERITY_FEC=y -CONFIG_DM_VERITY=m -CONFIG_DM_ZERO=y -CONFIG_DM_ZONED=m -CONFIG_DNET=m -CONFIG_DNOTIFY=y -CONFIG_DNS_RESOLVER=m -CONFIG_DONGLE=y -CONFIG_DP83640_PHY=m -CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m -# CONFIG_DPM_WATCHDOG is not set # revisit this in debug -CONFIG_DPOT_DAC=m -CONFIG_DRAGONRISE_FF=y -# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_DRM_AMD_ACP=y -CONFIG_DRM_AMDGPU_CIK=y -# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set -CONFIG_DRM_AMDGPU=m -# CONFIG_DRM_AMDGPU_SI is not set -CONFIG_DRM_AMDGPU_USERPTR=y -CONFIG_DRM_AMD_POWERPLAY=y -CONFIG_DRM_ANALOGIX_ANX78XX=m -# CONFIG_DRM_ARCPGU is not set -CONFIG_DRM_AST=m -CONFIG_DRM_BOCHS=m -CONFIG_DRM_CIRRUS_QEMU=m -# CONFIG_DRM_DEBUG_MM_SELFTEST is not set -CONFIG_DRM_DP_AUX_CHARDEV=y -# CONFIG_DRM_DUMB_VGA_DAC is not set -# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set -# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -CONFIG_DRM_HISI_HIBMC=m -CONFIG_DRM_I2C_ADV7511_AUDIO=y -CONFIG_DRM_I2C_ADV7511=m -CONFIG_DRM_I2C_ADV7533=y -CONFIG_DRM_I2C_CH7006=m -CONFIG_DRM_I2C_NXP_TDA998X=m -CONFIG_DRM_I2C_SIL164=m -# CONFIG_DRM_LEGACY is not set -CONFIG_DRM_LOAD_EDID_FIRMWARE=y -# CONFIG_DRM_LVDS_ENCODER is not set -CONFIG_DRM=m -# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set -CONFIG_DRM_MGAG200=m -# CONFIG_DRM_MGA is not set -# CONFIG_DRM_MXSFB is not set -CONFIG_DRM_NOUVEAU_BACKLIGHT=y -CONFIG_DRM_NOUVEAU=m -# CONFIG_DRM_NXP_PTN3460 is not set -# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set -# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set -# CONFIG_DRM_PANEL_LG_LG4573 is not set -# CONFIG_DRM_PANEL_LVDS is not set -# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set -# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set -# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set -# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set -# CONFIG_DRM_PANEL_SIMPLE is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set -CONFIG_DRM_PANEL=y -# CONFIG_DRM_PARADE_PS8622 is not set -CONFIG_DRM_QXL=m -# CONFIG_DRM_R128 is not set -CONFIG_DRM_RADEON=m -CONFIG_DRM_RADEON_USERPTR=y -# CONFIG_DRM_RCAR_DW_HDMI is not set -# CONFIG_DRM_SAVAGE is not set -# CONFIG_DRM_SII902X is not set -CONFIG_DRM_SIL_SII8620=m -# CONFIG_DRM_SIS is not set -# CONFIG_DRM_TDFX is not set -# CONFIG_DRM_TINYDRM is not set -CONFIG_DRM_TI_TFP410=m -# CONFIG_DRM_TOSHIBA_TC358767 is not set -CONFIG_DRM_UDL=m -# CONFIG_DRM_VBOXVIDEO is not set -CONFIG_DRM_VGEM=m -CONFIG_DRM_VIA=m -CONFIG_DRM_VIRTIO_GPU=m -# CONFIG_DS1682 is not set -# CONFIG_DS1803 is not set -# CONFIG_DT3155 is not set -CONFIG_DTL=y -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -CONFIG_DUMMY_CONSOLE=y -# CONFIG_DUMMY_IRQ is not set -CONFIG_DUMMY=m -CONFIG_DVB_AS102=m -CONFIG_DVB_AV7110=m -CONFIG_DVB_AV7110_OSD=y -# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set -CONFIG_DVB_B2C2_FLEXCOP=m -# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set -CONFIG_DVB_B2C2_FLEXCOP_PCI=m -# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set -CONFIG_DVB_B2C2_FLEXCOP_USB=m -CONFIG_DVB_BT8XX=m -CONFIG_DVB_BUDGET_AV=m -CONFIG_DVB_BUDGET_CI=m -CONFIG_DVB_BUDGET_CORE=m -CONFIG_DVB_BUDGET=m -CONFIG_DVB_BUDGET_PATCH=m -CONFIG_DVB_CORE=m -# CONFIG_DVB_CXD2099 is not set -CONFIG_DVB_DDBRIDGE=m -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -CONFIG_DVB_DM1105=m -CONFIG_DVB_DYNAMIC_MINORS=y -CONFIG_DVB_FIREDTV=m -CONFIG_DVB_HOPPER=m -CONFIG_DVB_MANTIS=m -CONFIG_DVB_MAX_ADAPTERS=8 -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m -CONFIG_DVB_NETUP_UNIDVB=m -CONFIG_DVB_NET=y -CONFIG_DVB_NGENE=m -# CONFIG_DVB_PLATFORM_DRIVERS is not set -CONFIG_DVB_PLUTO2=m -CONFIG_DVB_PT1=m -# CONFIG_DVB_PT3 is not set -# CONFIG_DVB_RTL2832_SDR is not set -CONFIG_DVB_SMIPCIE=m -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m -CONFIG_DVB_USB_A800=m -CONFIG_DVB_USB_AF9005=m -CONFIG_DVB_USB_AF9005_REMOTE=m -CONFIG_DVB_USB_AF9015=m -CONFIG_DVB_USB_AF9035=m -CONFIG_DVB_USB_ANYSEE=m -CONFIG_DVB_USB_AU6610=m -CONFIG_DVB_USB_AZ6007=m -CONFIG_DVB_USB_AZ6027=m -CONFIG_DVB_USB_CE6230=m -CONFIG_DVB_USB_CINERGY_T2=m -CONFIG_DVB_USB_CXUSB=m -# CONFIG_DVB_USB_DEBUG is not set -CONFIG_DVB_USB_DIB0700=m -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set -CONFIG_DVB_USB_DIBUSB_MB=m -CONFIG_DVB_USB_DIBUSB_MC=m -CONFIG_DVB_USB_DIGITV=m -CONFIG_DVB_USB_DTT200U=m -CONFIG_DVB_USB_DTV5100=m -CONFIG_DVB_USB_DVBSKY=m -CONFIG_DVB_USB_DW2102=m -CONFIG_DVB_USB_EC168=m -CONFIG_DVB_USB_FRIIO=m -CONFIG_DVB_USB_GL861=m -CONFIG_DVB_USB_GP8PSK=m -CONFIG_DVB_USB_LME2510=m -CONFIG_DVB_USB=m -CONFIG_DVB_USB_M920X=m -CONFIG_DVB_USB_MXL111SF=m -CONFIG_DVB_USB_NOVA_T_USB2=m -CONFIG_DVB_USB_OPERA1=m -CONFIG_DVB_USB_PCTV452E=m -CONFIG_DVB_USB_RTL28XXU=m -CONFIG_DVB_USB_TECHNISAT_USB2=m -CONFIG_DVB_USB_TTUSB2=m -CONFIG_DVB_USB_UMT_010=m -CONFIG_DVB_USB_V2=m -CONFIG_DVB_USB_VP702X=m -CONFIG_DVB_USB_VP7045=m -CONFIG_DVB_USB_ZD1301=m -# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set -CONFIG_DW_DMAC_CORE=m -CONFIG_DW_DMAC=m -CONFIG_DW_DMAC_PCI=m -# CONFIG_DW_WATCHDOG is not set -CONFIG_DYNAMIC_DEBUG=y -CONFIG_DYNAMIC_FTRACE=y -CONFIG_E1000E=m -CONFIG_E1000=m -CONFIG_E100=m -CONFIG_EARLY_PRINTK_DBGP=y -CONFIG_EARLY_PRINTK_USB_XDBC=y -# CONFIG_EBC_C384_WDT is not set -CONFIG_ECHO=m -CONFIG_ECRYPT_FS=m -# CONFIG_ECRYPT_FS_MESSAGING is not set -# CONFIG_EDAC_CPC925 is not set -# CONFIG_EDAC_DEBUG is not set -CONFIG_EDAC_GHES=y -CONFIG_EDAC_LEGACY_SYSFS=y -# CONFIG_EDAC_MPC85XX is not set -CONFIG_EDAC=y -CONFIG_EEPROM_93CX6=m -# CONFIG_EEPROM_93XX46 is not set -CONFIG_EEPROM_AT24=m -# CONFIG_EEPROM_AT25 is not set -CONFIG_EEPROM_IDT_89HPESX=m -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -# CONFIG_EFI_ALLOW_SECURE_BOOT_EXIT is not set -CONFIG_EFI_PARTITION=y -# CONFIG_EFI_PGT_DUMP is not set -# CONFIG_EFI_SECURE_BOOT_LOCK_DOWN is not set -# CONFIG_EFI_SIGNATURE_LIST_PARSER is not set -# CONFIG_EFI_TEST is not set -# CONFIG_EFS_FS is not set -CONFIG_EHEA=m -# CONFIG_EMBEDDED is not set -CONFIG_ENABLE_MUST_CHECK=y -# CONFIG_ENABLE_WARN_DEPRECATED is not set -# CONFIG_ENC28J60 is not set -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_ENCRYPTED_KEYS=y -CONFIG_ENIC=m -CONFIG_ENVELOPE_DETECTOR=m -CONFIG_EPIC100=m -CONFIG_EPOLL=y -CONFIG_EQUALIZER=m -CONFIG_ESI_DONGLE=m -CONFIG_ET131X=m -CONFIG_ETHERNET=y -CONFIG_ETHOC=m -# CONFIG_EUROTECH_WDT is not set -# CONFIG_EVM is not set -# CONFIG_EXOFS_DEBUG is not set -# CONFIG_EXOFS_FS is not set -# CONFIG_EXPERT is not set -CONFIG_EXPORTFS=y -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -# CONFIG_EXT4_DEBUG is not set -CONFIG_EXT4_ENCRYPTION=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y -# CONFIG_EXTCON_ADC_JACK is not set -# CONFIG_EXTCON_GPIO is not set -# CONFIG_EXTCON_MAX3355 is not set -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set -# CONFIG_EXTCON_RT8973A is not set -# CONFIG_EXTCON_SM5502 is not set -# CONFIG_EXTCON_USB_GPIO is not set -CONFIG_EXTCON=y -CONFIG_EXTRA_FIRMWARE="" -CONFIG_EXTRA_TARGETS="" -# CONFIG_EZNPS_GIC is not set -# CONFIG_EZX_PCAP is not set -# CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FAULT_INJECTION is not set -# CONFIG_F2FS_FS_ENCRYPTION is not set -CONFIG_F2FS_FS=m -CONFIG_F2FS_FS_POSIX_ACL=y -CONFIG_F2FS_FS_SECURITY=y -CONFIG_F2FS_FS_XATTR=y -# CONFIG_F2FS_IO_TRACE is not set -CONFIG_F2FS_STAT_FS=y -CONFIG_FA_DUMP=y -# CONFIG_FAIL_FUTEX is not set -# CONFIG_FAIL_IOMMU is not set -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y -CONFIG_FANOTIFY=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="ascii" -# CONFIG_FAT_DEFAULT_UTF8 is not set -CONFIG_FAT_FS=m -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_ASILIANT is not set -CONFIG_FB_ATY128_BACKLIGHT=y -# CONFIG_FB_ATY128 is not set -CONFIG_FB_ATY_BACKLIGHT=y -# CONFIG_FB_ATY_CT is not set -# CONFIG_FB_ATY_GX is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_AUO_K190X is not set -# CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_CARMINE is not set -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_CONTROL is not set -# CONFIG_FB_CT65550 is not set -# CONFIG_FB_CYBER2000 is not set -CONFIG_FB_EFI=y -# CONFIG_FB_FOREIGN_ENDIAN is not set -# CONFIG_FB_HECUBA is not set -# CONFIG_FB_I740 is not set -CONFIG_FB_IBM_GXT4500=y -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_KYRO is not set -CONFIG_FB_MATROX_G=y -# CONFIG_FB_MATROX_I2C is not set -# CONFIG_FB_MATROX_MILLENIUM is not set -# CONFIG_FB_MATROX_MYSTIQUE is not set -CONFIG_FB_MATROX=y -# CONFIG_FB_MB862XX_I2C is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_MB862XX_LIME is not set -# CONFIG_FB_MB862XX_PCI_GDC is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_NEOMAGIC is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -# CONFIG_FB_NVIDIA_DEBUG is not set -# CONFIG_FB_NVIDIA_I2C is not set -# CONFIG_FB_NVIDIA is not set -CONFIG_FB_OF=y -# CONFIG_FB_OPENCORES is not set -# CONFIG_FB_PLATINUM is not set -# CONFIG_FB_PM2_FIFO_DISCONNECT is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_PRE_INIT_FB is not set -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -# CONFIG_FB_RADEON_I2C is not set -# CONFIG_FB_RADEON is not set -CONFIG_FB_RIVA_BACKLIGHT=y -# CONFIG_FB_RIVA_DEBUG is not set -# CONFIG_FB_RIVA_I2C is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIMPLE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_SM501 is not set -# CONFIG_FB_SM712 is not set -# CONFIG_FB_SM750 is not set -# CONFIG_FB_SMSCUFX is not set -CONFIG_FB_SSD1307=m -# CONFIG_FB_TFT is not set -CONFIG_FB_TILEBLITTING=y -# CONFIG_FB_TMIO is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_UDL is not set -# CONFIG_FB_UVESA is not set -# CONFIG_FB_VALKYRIE is not set -CONFIG_FB_VESA=y -# CONFIG_FB_VGA16 is not set -CONFIG_FB_VIRTUAL=m -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_XGI is not set -CONFIG_FB=y -CONFIG_FCOE_FNIC=m -CONFIG_FCOE=m -# CONFIG_FDDI is not set -CONFIG_FEALNX=m -CONFIG_FHANDLE=y -# CONFIG_FHCI_DEBUG is not set -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_NET=m -CONFIG_FIREWIRE_NOSY=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_SBP2=m -# CONFIG_FIREWIRE_SERIAL is not set -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_FIXED_PHY=y -CONFIG_FM10K=m -CONFIG_FMC_CHARDEV=m -CONFIG_FMC_FAKEDEV=m -CONFIG_FMC=m -CONFIG_FMC_TRIVIAL=m -CONFIG_FMC_WRITE_EEPROM=m -# CONFIG_FONTS is not set -CONFIG_FORCEDETH=m -CONFIG_FORCE_MAX_ZONEORDER=9 -CONFIG_FORTIFY_SOURCE=y -# CONFIG_FPGA is not set -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAME_POINTER=y -CONFIG_FRAME_WARN=2048 -CONFIG_FRONTSWAP=y -# CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_HISTOGRAM is not set -CONFIG_FSCACHE=m -CONFIG_FSCACHE_OBJECT_LIST=y -CONFIG_FSCACHE_STATS=y -CONFIG_FS_DAX=y -CONFIG_FS_ENCRYPTION=y -# CONFIG_FS_ENET is not set -CONFIG_FSI=m -CONFIG_FSI_MASTER_GPIO=m -CONFIG_FSI_MASTER_HUB=m -CONFIG_FSI_SCOM=m -# CONFIG_FSL_DMA is not set -# CONFIG_FSL_EDMA is not set -# CONFIG_FSL_LBC is not set -# CONFIG_FSL_PQ_MDIO is not set -CONFIG_FS_MBCACHE=y -CONFIG_FSNOTIFY=y -# CONFIG_FTL is not set -CONFIG_FTRACE_MCOUNT_RECORD=y -# CONFIG_FTRACE_STARTUP_TEST is not set -CONFIG_FTRACE_SYSCALLS=y -CONFIG_FTRACE=y -# CONFIG_FTR_FIXUP_SELFTEST is not set -# CONFIG_FUNCTION_GRAPH_TRACER is not set -CONFIG_FUNCTION_PROFILER=y -CONFIG_FUNCTION_TRACER=y -CONFIG_FUSE_FS=m -CONFIG_FUSION_CTL=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_LAN=m -CONFIG_FUSION_LOGGING=y -CONFIG_FUSION_MAX_SGE=40 -CONFIG_FUSION_SAS=m -CONFIG_FUSION_SPI=m -CONFIG_FUSION=y -CONFIG_FUTEX=y -# CONFIG_FW_CFG_SYSFS_CMDLINE is not set -CONFIG_FW_CFG_SYSFS=m -# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set -# CONFIG_FW_LOADER_USER_HELPER is not set -CONFIG_FW_LOADER=y -CONFIG_GACT_PROB=y -CONFIG_GAMEPORT_EMU10K1=m -CONFIG_GAMEPORT_FM801=m -CONFIG_GAMEPORT_L4=m -CONFIG_GAMEPORT=m -CONFIG_GAMEPORT_NS558=m -# CONFIG_GCC_PLUGINS is not set -# CONFIG_GCOV_KERNEL is not set -# CONFIG_GDB_SCRIPTS is not set -# CONFIG_GEF_PPC9A is not set -# CONFIG_GEF_SBC310 is not set -# CONFIG_GEF_SBC610 is not set -# CONFIG_GENERIC_ADC_BATTERY is not set -# CONFIG_GENERIC_ADC_THERMAL is not set -# CONFIG_GENERIC_IRQ_DEBUGFS is not set -CONFIG_GENERIC_PHY=y -CONFIG_GENEVE=m -# CONFIG_GEN_RTC is not set -CONFIG_GENWQE=m -CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=1 -CONFIG_GFS2_FS_LOCKING_DLM=y -CONFIG_GFS2_FS=m -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_CAPI=y -# CONFIG_GIGASET_DEBUG is not set -CONFIG_GIGASET_M101=m -CONFIG_GIGASET_M105=m -CONFIG_GIRBIL_DONGLE=m -# CONFIG_GLOB_SELFTEST is not set -# CONFIG_GOLDFISH is not set -# CONFIG_GOOGLE_FIRMWARE is not set -# CONFIG_GP2AP020A00F is not set -# CONFIG_GPIO_104_DIO_48E is not set -# CONFIG_GPIO_104_IDIO_16 is not set -# CONFIG_GPIO_74X164 is not set -# CONFIG_GPIO_74XX_MMIO is not set -# CONFIG_GPIO_ADNP is not set -# CONFIG_GPIO_ADP5588 is not set -# CONFIG_GPIO_ALTERA is not set -# CONFIG_GPIO_AMDPT is not set -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_DWAPB is not set -CONFIG_GPIO_EXAR=m -# CONFIG_GPIO_FTGPIO010 is not set -# CONFIG_GPIO_GENERIC_PLATFORM is not set -# CONFIG_GPIO_GRGPIO is not set -# CONFIG_GPIO_IT87 is not set -CONFIG_GPIOLIB=y -# CONFIG_GPIO_MAX7300 is not set -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_MCP23S08 is not set -# CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -# CONFIG_GPIO_PCH is not set -CONFIG_GPIO_PCI_IDIO_16=m -# CONFIG_GPIO_PISOSR is not set -# CONFIG_GPIO_RDC321X is not set -# CONFIG_GPIO_SCH311X is not set -# CONFIG_GPIO_SX150X is not set -# CONFIG_GPIO_SYSCON is not set -# CONFIG_GPIO_SYSFS is not set -# CONFIG_GPIO_TPIC2810 is not set -# CONFIG_GPIO_TS4900 is not set -# CONFIG_GPIO_TS5500 is not set -# CONFIG_GPIO_UCB1400 is not set -CONFIG_GPIO_VIPERBOARD=m -# CONFIG_GPIO_WATCHDOG is not set -CONFIG_GPIO_WM831X=m -# CONFIG_GPIO_WS16C48 is not set -# CONFIG_GPIO_XILINX is not set -# CONFIG_GPIO_XRA1403 is not set -CONFIG_GREENASIA_FF=y -# CONFIG_GREYBUS is not set -# CONFIG_GS_FPGABOOT is not set -CONFIG_GTP=m -CONFIG_HAMACHI=m -CONFIG_HAMRADIO=y -CONFIG_HANGCHECK_TIMER=m -CONFIG_HAPPYMEAL=m -CONFIG_HARDENED_USERCOPY=y -CONFIG_HARDLOCKUP_DETECTOR=y -CONFIG_HAVE_BOOTMEM_INFO_NODE=y -# CONFIG_HCALL_STATS is not set -CONFIG_HD44780=m -# CONFIG_HDC100X is not set -CONFIG_HEADERS_CHECK=y -CONFIG_HERMES_CACHE_FW_ON_INIT=y -CONFIG_HERMES=m -CONFIG_HERMES_PRISM=y -CONFIG_HFS_FS=m -CONFIG_HFSPLUS_FS=m -# CONFIG_HFSPLUS_FS_POSIX_ACL is not set -# CONFIG_HI8435 is not set -# CONFIG_HIBERNATION is not set -CONFIG_HID_A4TECH=m -CONFIG_HID_ACCUTOUCH=m -CONFIG_HID_ACRUX_FF=y -CONFIG_HID_ACRUX=m -CONFIG_HID_ALPS=m -CONFIG_HID_APPLEIR=m -CONFIG_HID_APPLE=m -# CONFIG_HID_ASUS is not set -CONFIG_HID_AUREAL=m -CONFIG_HID_BATTERY_STRENGTH=y -CONFIG_HID_BELKIN=m -CONFIG_HID_BETOP_FF=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_CMEDIA=m -CONFIG_HID_CORSAIR=m -# CONFIG_HID_CP2112 is not set -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -CONFIG_HID_ELECOM=m -CONFIG_HID_ELO=m -CONFIG_HID_EMS_FF=m -CONFIG_HID_EZKEY=m -CONFIG_HID_GEMBIRD=m -CONFIG_HID_GENERIC=y -CONFIG_HID_GFRM=m -CONFIG_HID_GREENASIA=m -CONFIG_HID_GT683R=m -CONFIG_HID_GYRATION=m -CONFIG_HID_HOLTEK=m -CONFIG_HID_ICADE=m -CONFIG_HID_ITE=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_LCPOWER=m -CONFIG_HID_LED=m -CONFIG_HID_LENOVO=m -CONFIG_HID_LOGITECH_DJ=m -CONFIG_HID_LOGITECH_HIDPP=m -CONFIG_HID_LOGITECH=m -CONFIG_HID_MAGICMOUSE=y -CONFIG_HID_MAYFLASH=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NTI=m -CONFIG_HID_NTRIG=y -CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -CONFIG_HID_PENMOUNT=m -CONFIG_HID_PETALYNX=m -CONFIG_HID_PICOLCD=m -CONFIG_HID_PID=y -CONFIG_HID_PLANTRONICS=m -CONFIG_HID_PRIMAX=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HIDRAW=y -CONFIG_HID_RETRODE=m -CONFIG_HID_RMI=m -CONFIG_HID_ROCCAT=m -CONFIG_HID_SAITEK=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SENSOR_ACCEL_3D=m -CONFIG_HID_SENSOR_ALS=m -# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set -CONFIG_HID_SENSOR_DEVICE_ROTATION=m -CONFIG_HID_SENSOR_GYRO_3D=m -CONFIG_HID_SENSOR_HUB=m -CONFIG_HID_SENSOR_HUMIDITY=m -CONFIG_HID_SENSOR_IIO_COMMON=m -CONFIG_HID_SENSOR_IIO_TRIGGER=m -CONFIG_HID_SENSOR_INCLINOMETER_3D=m -CONFIG_HID_SENSOR_MAGNETOMETER_3D=m -# CONFIG_HID_SENSOR_PRESS is not set -# CONFIG_HID_SENSOR_PROX is not set -CONFIG_HID_SENSOR_TEMP=m -CONFIG_HID_SMARTJOYPLUS=m -CONFIG_HID_SONY=m -CONFIG_HID_SPEEDLINK=m -CONFIG_HID_STEELSERIES=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_THINGM=m -CONFIG_HID_THRUSTMASTER=m -CONFIG_HID_TIVO=m -CONFIG_HID_TOPSEED=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_UDRAW_PS3=m -CONFIG_HID_WACOM=m -CONFIG_HID_WALTOP=m -CONFIG_HID_WIIMOTE=m -CONFIG_HID_XINMO=m -CONFIG_HID=y -CONFIG_HID_ZEROPLUS=m -CONFIG_HID_ZYDACRON=m -CONFIG_HIGH_RES_TIMERS=y -# CONFIG_HIPPI is not set -CONFIG_HISAX_16_3=y -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_BKM_A4T=y -# CONFIG_HISAX_DEBUG is not set -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_EURO=y -CONFIG_HISAX_FRITZ_PCIPNP=m -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC4S8S=m -CONFIG_HISAX_HFC_PCI=y -CONFIG_HISAX_HFC_SX=y -# CONFIG_HISAX_HFCUSB is not set -CONFIG_HISAX_MAX_CARDS=8 -CONFIG_HISAX_NETJET_U=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_NO_KEYPAD=y -CONFIG_HISAX_NO_LLC=y -CONFIG_HISAX_NO_SENDCOMPLETE=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_SCT_QUADRO=y -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_TELES_CS=m -CONFIG_HISAX_TELESPCI=y -CONFIG_HISAX_W6692=y -CONFIG_HIST_TRIGGERS=y -# CONFIG_HMC6352 is not set -# CONFIG_HMC_DRV is not set -CONFIG_HOLTEK_FF=y -# CONFIG_HOSTAP is not set -CONFIG_HOTPLUG_CPU=y -CONFIG_HOTPLUG_PCI_ACPI_IBM=m -CONFIG_HOTPLUG_PCI_ACPI=y -# CONFIG_HOTPLUG_PCI_CPCI is not set -CONFIG_HOTPLUG_PCI_PCIE=y -# CONFIG_HOTPLUG_PCI_POWERNV is not set -CONFIG_HOTPLUG_PCI_RPA_DLPAR=m -CONFIG_HOTPLUG_PCI_RPA=m -CONFIG_HOTPLUG_PCI_SHPC=m -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG=y -# CONFIG_HP03 is not set -# CONFIG_HP206C is not set -# CONFIG_HPFS_FS is not set -# CONFIG_HP_ILO is not set -# CONFIG_HSI is not set -# CONFIG_HSR is not set -# CONFIG_HSU_DMA is not set -# CONFIG_HSU_DMA_PCI is not set -CONFIG_HT16K33=m -# CONFIG_HTC_EGPIO is not set -# CONFIG_HTC_I2CPLD is not set -# CONFIG_HTC_PASIC3 is not set -CONFIG_HT_IRQ=y -CONFIG_HTS221=m -# CONFIG_HTU21 is not set -CONFIG_HUGETLBFS=y -CONFIG_HUGETLB_PAGE=y -CONFIG_HVC_CONSOLE=y -# CONFIG_HVC_OLD_HVSI is not set -CONFIG_HVC_OPAL=y -CONFIG_HVC_RTAS=y -CONFIG_HVCS=m -# CONFIG_HVC_UDBG is not set -CONFIG_HV_PERF_CTRS=y -CONFIG_HW_CONSOLE=y -CONFIG_HWLAT_TRACER=y -# CONFIG_HWMON_DEBUG_CHIP is not set -CONFIG_HWMON=y -CONFIG_HWPOISON_INJECT=m -CONFIG_HW_RANDOM_OMAP=m -CONFIG_HW_RANDOM_POWERNV=m -CONFIG_HW_RANDOM_PSERIES=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_TPM=m -CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_HW_RANDOM=y -CONFIG_HWSPINLOCK=m -# CONFIG_HX711 is not set -CONFIG_HYSDN_CAPI=y -CONFIG_HYSDN=m -CONFIG_HZ=100 -# CONFIG_HZ_1000 is not set -CONFIG_HZ_100=y -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCA=m -CONFIG_I2C_ALGOPCF=m -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD756_S4882 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set -# CONFIG_I2C_BCM2048 is not set -# CONFIG_I2C_CADENCE is not set -# CONFIG_I2C_CBUS_GPIO is not set -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_COMPAT=y -# CONFIG_I2C_CPM is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEMUX_PINCTRL is not set -# CONFIG_I2C_DESIGNWARE is not set -CONFIG_I2C_DESIGNWARE_PCI=m -# CONFIG_I2C_DESIGNWARE_PLATFORM is not set -CONFIG_I2C_DESIGNWARE_SLAVE=y -CONFIG_I2C_DIOLAN_U2C=m -# CONFIG_I2C_EG20T is not set -# CONFIG_I2C_EMEV2 is not set -# CONFIG_I2C_GPIO is not set -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_HID=m -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_ISCH is not set -CONFIG_I2C=m -CONFIG_I2C_MLXCPLD=m -CONFIG_I2C_MPC=m -# CONFIG_I2C_MUX_GPIO is not set -CONFIG_I2C_MUX_GPMUX=m -CONFIG_I2C_MUX_LTC4306=m -CONFIG_I2C_MUX=m -CONFIG_I2C_MUX_MLXCPLD=m -# CONFIG_I2C_MUX_PCA9541 is not set -# CONFIG_I2C_MUX_PCA954x is not set -# CONFIG_I2C_MUX_PINCTRL is not set -# CONFIG_I2C_MUX_REG is not set -CONFIG_I2C_NFORCE2=m -# CONFIG_I2C_NFORCE2_S4985 is not set -# CONFIG_I2C_OCORES is not set -CONFIG_I2C_OPAL=m -# CONFIG_I2C_PARPORT_LIGHT is not set -CONFIG_I2C_PCA_PLATFORM=m -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_RK3X is not set -# CONFIG_I2C_ROBOTFUZZ_OSIF is not set -CONFIG_I2C_SI470X=m -# CONFIG_I2C_SI4713 is not set -CONFIG_I2C_SIMTEC=m -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -CONFIG_I2C_SLAVE_EEPROM=m -CONFIG_I2C_SLAVE=y -CONFIG_I2C_STUB=m -# CONFIG_I2C_TAOS_EVM is not set -CONFIG_I2C_TINY_USB=m -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -CONFIG_I2C_VIPERBOARD=m -# CONFIG_I2C_XILINX is not set -# CONFIG_I2O is not set -# CONFIG_I40E_DCB is not set -# CONFIG_I40E_FCOE is not set -CONFIG_I40E=m -CONFIG_I40EVF=m -CONFIG_I6300ESB_WDT=m -CONFIG_I82092=m -# CONFIG_IAQCORE is not set -CONFIG_IBM_BSR=m -CONFIG_IBMEBUS=y -# CONFIG_IBM_EMAC is not set -CONFIG_IBMVETH=m -CONFIG_IBMVNIC=m -CONFIG_ICPLUS_PHY=m -# CONFIG_ICS932S401 is not set -# CONFIG_IDE is not set -# CONFIG_IDEPCI_PCIBUS_ORDER is not set -# CONFIG_IDLE_PAGE_TRACKING is not set -# CONFIG_IDMA64 is not set -CONFIG_IEEE802154_6LOWPAN=m -CONFIG_IEEE802154_ADF7242=m -# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set -CONFIG_IEEE802154_AT86RF230=m -CONFIG_IEEE802154_ATUSB=m -# CONFIG_IEEE802154_CA8210_DEBUGFS is not set -CONFIG_IEEE802154_CA8210=m -CONFIG_IEEE802154_CC2520=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKELB=m -CONFIG_IEEE802154=m -CONFIG_IEEE802154_MRF24J40=m -# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set -CONFIG_IEEE802154_SOCKET=m -CONFIG_IFB=m -CONFIG_IGB_DCA=y -CONFIG_IGB_HWMON=y -CONFIG_IGB=m -CONFIG_IGBVF=m -CONFIG_IIO_BUFFER_CB=m -CONFIG_IIO_BUFFER=y -CONFIG_IIO_CONFIGFS=m -CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 -# CONFIG_IIO_HRTIMER_TRIGGER is not set -CONFIG_IIO_INTERRUPT_TRIGGER=m -CONFIG_IIO_KFIFO_BUF=m -CONFIG_IIO=m -CONFIG_IIO_MUX=m -# CONFIG_IIO_SIMPLE_DUMMY is not set -# CONFIG_IIO_SSP_SENSORHUB is not set -CONFIG_IIO_ST_ACCEL_3AXIS=m -CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m -CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m -CONFIG_IIO_ST_GYRO_3AXIS=m -CONFIG_IIO_ST_GYRO_I2C_3AXIS=m -CONFIG_IIO_ST_GYRO_SPI_3AXIS=m -# CONFIG_IIO_ST_LSM6DSX is not set -CONFIG_IIO_ST_MAGN_3AXIS=m -# CONFIG_IIO_ST_PRESS is not set -CONFIG_IIO_SW_DEVICE=m -CONFIG_IIO_SW_TRIGGER=m -# CONFIG_IIO_SYSFS_TRIGGER is not set -CONFIG_IIO_TIGHTLOOP_TRIGGER=m -CONFIG_IIO_TRIGGERED_BUFFER=m -CONFIG_IIO_TRIGGER=y -# CONFIG_IKCONFIG is not set -# CONFIG_IMA is not set -CONFIG_IMA_LSM_RULES=y -CONFIG_IMA_MEASURE_PCR_IDX=10 -# CONFIG_IMG_ASCII_LCD is not set -# CONFIG_INA2XX_ADC is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_ESP_OFFLOAD=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET_AH=m -CONFIG_INET_DIAG_DESTROY=y -CONFIG_INET_DIAG=m -CONFIG_INET_ESP=m -CONFIG_INET_ESP_OFFLOAD=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_RAW_DIAG=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_UDP_DIAG=m -CONFIG_INET_XFRM_MODE_BEET=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET=y -# CONFIG_INFINIBAND_BNXT_RE is not set -# CONFIG_INFINIBAND_CXGB3_DEBUG is not set -CONFIG_INFINIBAND_CXGB3=m -CONFIG_INFINIBAND_CXGB4=m -CONFIG_INFINIBAND_I40IW=m -CONFIG_INFINIBAND_IPOIB_CM=y -CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y -CONFIG_INFINIBAND_IPOIB_DEBUG=y -CONFIG_INFINIBAND_IPOIB=m -CONFIG_INFINIBAND_ISER=m -CONFIG_INFINIBAND_ISERT=m -CONFIG_INFINIBAND=m -CONFIG_INFINIBAND_MTHCA=m -# CONFIG_INFINIBAND_NES_DEBUG is not set -CONFIG_INFINIBAND_NES=m -CONFIG_INFINIBAND_OCRDMA=m -CONFIG_INFINIBAND_ON_DEMAND_PAGING=y -# CONFIG_INFINIBAND_QEDR is not set -CONFIG_INFINIBAND_QIB_DCA=y -CONFIG_INFINIBAND_QIB=m -CONFIG_INFINIBAND_RDMAVT=m -CONFIG_INFINIBAND_SRP=m -CONFIG_INFINIBAND_SRPT=m -CONFIG_INFINIBAND_USER_ACCESS=m -CONFIG_INFINIBAND_USER_MAD=m -CONFIG_INFINIBAND_USNIC=m -# CONFIG_INFINIBAND_VMWARE_PVRDMA is not set -# CONFIG_INFTL is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_INOTIFY_USER=y -# CONFIG_INPUT_AD714X is not set -# CONFIG_INPUT_ADXL34X is not set -CONFIG_INPUT_APANEL=m -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_ATLAS_BTNS=m -# CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BMA150 is not set -CONFIG_INPUT_CM109=m -CONFIG_INPUT_CMA3000_I2C=m -CONFIG_INPUT_CMA3000=m -# CONFIG_INPUT_DRV260X_HAPTICS is not set -# CONFIG_INPUT_DRV2665_HAPTICS is not set -# CONFIG_INPUT_DRV2667_HAPTICS is not set -CONFIG_INPUT_E3X0_BUTTON=m -# CONFIG_INPUT_EVBUG is not set -CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_FF_MEMLESS=m -# CONFIG_INPUT_GP2A is not set -# CONFIG_INPUT_GPIO_BEEPER is not set -# CONFIG_INPUT_GPIO_DECODER is not set -# CONFIG_INPUT_GPIO is not set -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -# CONFIG_INPUT_GPIO_TILT_POLLED is not set -CONFIG_INPUT_IDEAPAD_SLIDEBAR=m -# CONFIG_INPUT_IMS_PCU is not set -CONFIG_INPUT_JOYDEV=m -CONFIG_INPUT_JOYSTICK=y -CONFIG_INPUT_KEYBOARD=y -CONFIG_INPUT_KEYSPAN_REMOTE=m -CONFIG_INPUT_KXTJ9=m -# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set -CONFIG_INPUT_LEDS=y -CONFIG_INPUT_MATRIXKMAP=m -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSE=y -CONFIG_INPUT_PCF50633_PMU=m -# CONFIG_INPUT_PCF8574 is not set -# CONFIG_INPUT_PCSPKR is not set -CONFIG_INPUT_PM8XXX_VIBRATOR=m -CONFIG_INPUT_PMIC8XXX_PWRKEY=m -CONFIG_INPUT_POLLDEV=m -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_PWM_BEEPER=m -CONFIG_INPUT_RETU_PWRBUTTON=m -CONFIG_INPUT_SPARSEKMAP=m -CONFIG_INPUT_TABLET=y -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_INPUT_UINPUT=m -CONFIG_INPUT_WISTRON_BTNS=m -CONFIG_INPUT_WM831X_ON=m -CONFIG_INPUT=y -CONFIG_INPUT_YEALINK=m -# CONFIG_INTEGRITY is not set -# CONFIG_INTEL_IDMA64 is not set -# CONFIG_INTEL_SOC_PMIC is not set -# CONFIG_INTEL_TH is not set -CONFIG_INTEL_XWAY_PHY=m -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_INV_MPU6050_I2C is not set -# CONFIG_INV_MPU6050_IIO is not set -# CONFIG_INV_MPU6050_SPI is not set -CONFIG_IO_EVENT_IRQ=y -CONFIG_IOMMU_SUPPORT=y -CONFIG_IOSCHED_BFQ=m -CONFIG_IOSCHED_CFQ=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_NOOP=y -CONFIG_IO_STRICT_DEVMEM=y -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_RPFILTER=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_NAT=m -CONFIG_IP6_NF_RAW=m -CONFIG_IP6_NF_SECURITY=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_MASQUERADE=m -# CONFIG_IP6_NF_TARGET_NPT is not set -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_TARGET_SYNPROXY=m -# CONFIG_IPACK_BUS is not set -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IPC_NS=y -# CONFIG_IP_DCCP_CCID2_DEBUG is not set -CONFIG_IP_DCCP_CCID2=m -# CONFIG_IP_DCCP_CCID3_DEBUG is not set -CONFIG_IP_DCCP_CCID3=y -# CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m -CONFIG_IPDDP_ENCAP=y -CONFIG_IPDDP=m -CONFIG_IP_FIB_TRIE_STATS=y -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_HANDLER=m -# CONFIG_IPMI_PANIC_EVENT is not set -CONFIG_IPMI_POWERNV=m -CONFIG_IPMI_POWEROFF=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_SSIF=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IP_MROUTE_MULTIPLE_TABLES=y -CONFIG_IP_MROUTE=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_RPFILTER=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_SECURITY=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_TARGET_SYNPROXY=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -# CONFIG_IP_PNP is not set -CONFIG_IPPP_FILTER=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_SCTP=m -CONFIG_IP_SET_BITMAP_IP=m -CONFIG_IP_SET_BITMAP_IPMAC=m -CONFIG_IP_SET_BITMAP_PORT=m -CONFIG_IP_SET_HASH_IP=m -CONFIG_IP_SET_HASH_IPMAC=m -CONFIG_IP_SET_HASH_IPMARK=m -CONFIG_IP_SET_HASH_IPPORTIP=m -CONFIG_IP_SET_HASH_IPPORT=m -CONFIG_IP_SET_HASH_IPPORTNET=m -CONFIG_IP_SET_HASH_MAC=m -CONFIG_IP_SET_HASH_NETIFACE=m -CONFIG_IP_SET_HASH_NET=m -CONFIG_IP_SET_HASH_NETNET=m -CONFIG_IP_SET_HASH_NETPORT=m -CONFIG_IP_SET_HASH_NETPORTNET=m -CONFIG_IP_SET_LIST_SET=m -CONFIG_IP_SET=m -CONFIG_IP_SET_MAX=256 -CONFIG_IPV6_GRE=m -CONFIG_IPV6_ILA=m -CONFIG_IPV6_MIP6=y -CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y -CONFIG_IPV6_MROUTE=y -CONFIG_IPV6_MULTIPLE_TABLES=y -CONFIG_IPV6_OPTIMISTIC_DAD=y -CONFIG_IPV6_PIMSM_V2=y -CONFIG_IPV6_ROUTE_INFO=y -CONFIG_IPV6_ROUTER_PREF=y -CONFIG_IPV6_SEG6_HMAC=y -CONFIG_IPV6_SEG6_INLINE=y -CONFIG_IPV6_SEG6_LWTUNNEL=y -CONFIG_IPV6_SIT_6RD=y -CONFIG_IPV6_SIT=m -CONFIG_IPV6_SUBTREES=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_VTI=m -CONFIG_IPV6=y -CONFIG_IPVLAN=m -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_FO=m -CONFIG_IP_VS_FTP=m -CONFIG_IP_VS_IPV6=y -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS=m -CONFIG_IP_VS_NQ=m -CONFIG_IP_VS_OVF=m -CONFIG_IP_VS_PE_SIP=m -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_SCTP=y -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SH_TAB_BITS=8 -CONFIG_IP_VS_TAB_BITS=12 -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_WRR=m -CONFIG_IPVTAP=m -# CONFIG_IPW2100_DEBUG is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200_DEBUG is not set -# CONFIG_IPW2200 is not set -CONFIG_IPWIRELESS=m -# CONFIG_IPX_INTERN is not set -CONFIG_IPX=m -CONFIG_IRCOMM=m -CONFIG_IRDA_CACHE_LAST_LSAP=y -# CONFIG_IRDA_DEBUG is not set -CONFIG_IRDA_FAST_RR=y -CONFIG_IRDA=m -# CONFIG_IRDA_ULTRA is not set -CONFIG_IR_ENE=m -CONFIG_IR_FINTEK=m -CONFIG_IR_GPIO_CIR=m -CONFIG_IR_HIX5HD2=m -CONFIG_IR_IGORPLUGUSB=m -CONFIG_IR_IGUANA=m -# CONFIG_IR_IMG is not set -CONFIG_IR_IMON=m -CONFIG_IR_ITE_CIR=m -CONFIG_IR_JVC_DECODER=m -CONFIG_IRLAN=m -CONFIG_IR_LIRC_CODEC=m -CONFIG_IR_MCE_KBD_DECODER=m -CONFIG_IR_MCEUSB=m -CONFIG_IR_NEC_DECODER=m -CONFIG_IRNET=m -CONFIG_IR_NUVOTON=m -CONFIG_IRQ_ALL_CPUS=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set -# CONFIG_IRQSOFF_TRACER is not set -CONFIG_IRQSTACKS=y -CONFIG_IRQ_TIME_ACCOUNTING=y -CONFIG_IR_RC5_DECODER=m -CONFIG_IR_RC6_DECODER=m -CONFIG_IR_REDRAT3=m -CONFIG_IR_SANYO_DECODER=m -CONFIG_IR_SERIAL=m -CONFIG_IR_SERIAL_TRANSMITTER=y -CONFIG_IR_SHARP_DECODER=m -CONFIG_IR_SIR=m -CONFIG_IR_SONY_DECODER=m -CONFIG_IR_SPI=m -CONFIG_IR_STREAMZAP=m -CONFIG_IR_TTUSBIR=m -CONFIG_IRTTY_SIR=m -CONFIG_IR_WINBOND_CIR=m -CONFIG_IR_XMP_DECODER=m -# CONFIG_ISA is not set -CONFIG_ISCSI_BOOT_SYSFS=m -CONFIG_ISCSI_TARGET_CXGB4=m -CONFIG_ISCSI_TARGET=m -CONFIG_ISCSI_TCP=m -CONFIG_ISDN_AUDIO=y -CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIDRV=m -# CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE is not set -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVERSION=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_ISDN_DRV_HISAX=m -CONFIG_ISDN_DRV_LOOP=m -CONFIG_ISDN_I4L=m -CONFIG_ISDN_MPP=y -# CONFIG_ISDN_PPP_BSDCOMP is not set -CONFIG_ISDN_PPP_VJ=y -CONFIG_ISDN_PPP=y -CONFIG_ISDN_TTY_FAX=y -CONFIG_ISDN=y -# CONFIG_ISI is not set -CONFIG_ISL29003=m -CONFIG_ISL29020=m -# CONFIG_ISL29125 is not set -CONFIG_ISO9660_FS=m -CONFIG_IT8712F_WDT=m -CONFIG_IT87_WDT=m -CONFIG_ITCO_VENDOR_SUPPORT=y -CONFIG_ITCO_WDT=m -# CONFIG_ITG3200 is not set -CONFIG_IWL3945=m -CONFIG_IWL4965=m -CONFIG_IWLDVM=m -CONFIG_IWLEGACY_DEBUGFS=y -CONFIG_IWLEGACY_DEBUG=y -CONFIG_IWLEGACY=m -CONFIG_IWLMVM=m -# CONFIG_IWLWIFI_BCAST_FILTERING is not set -CONFIG_IWLWIFI_DEBUGFS=y -CONFIG_IWLWIFI_DEBUG=y -# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_IWLWIFI=m -# CONFIG_IWLWIFI_PCIE_RTPM is not set -# CONFIG_IWM is not set -CONFIG_IXGBE_DCA=y -CONFIG_IXGBE_DCB=y -CONFIG_IXGBE_HWMON=y -CONFIG_IXGBE=m -CONFIG_IXGBEVF=m -CONFIG_IXGB=m -# CONFIG_JBD2_DEBUG is not set -CONFIG_JBD2=y -# CONFIG_JFFS2_FS is not set -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_STATISTICS is not set -CONFIG_JME=m -CONFIG_JOLIET=y -CONFIG_JOYSTICK_A3D=m -CONFIG_JOYSTICK_ADI=m -CONFIG_JOYSTICK_ANALOG=m -# CONFIG_JOYSTICK_AS5011 is not set -CONFIG_JOYSTICK_COBRA=m -CONFIG_JOYSTICK_DB9=m -CONFIG_JOYSTICK_GAMECON=m -CONFIG_JOYSTICK_GF2K=m -CONFIG_JOYSTICK_GRIP=m -CONFIG_JOYSTICK_GRIP_MP=m -CONFIG_JOYSTICK_GUILLEMOT=m -CONFIG_JOYSTICK_IFORCE_232=y -CONFIG_JOYSTICK_IFORCE=m -CONFIG_JOYSTICK_IFORCE_USB=y -CONFIG_JOYSTICK_INTERACT=m -CONFIG_JOYSTICK_JOYDUMP=m -CONFIG_JOYSTICK_MAGELLAN=m -CONFIG_JOYSTICK_PSXPAD_SPI_FF=y -CONFIG_JOYSTICK_PSXPAD_SPI=m -CONFIG_JOYSTICK_SIDEWINDER=m -CONFIG_JOYSTICK_SPACEBALL=m -CONFIG_JOYSTICK_SPACEORB=m -CONFIG_JOYSTICK_STINGER=m -CONFIG_JOYSTICK_TMDC=m -CONFIG_JOYSTICK_TURBOGRAFX=m -CONFIG_JOYSTICK_TWIDJOY=m -CONFIG_JOYSTICK_WALKERA0701=m -CONFIG_JOYSTICK_WARRIOR=m -CONFIG_JOYSTICK_XPAD_FF=y -CONFIG_JOYSTICK_XPAD_LEDS=y -CONFIG_JOYSTICK_XPAD=m -CONFIG_JOYSTICK_ZHENHUA=m -# CONFIG_JSA1212 is not set -# CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG is not set -# CONFIG_JUMP_LABEL_FEATURE_CHECKS is not set -CONFIG_JUMP_LABEL=y -CONFIG_KALLSYMS_ALL=y -CONFIG_KALLSYMS=y -CONFIG_KARMA_PARTITION=y -# CONFIG_KASAN is not set -# CONFIG_KCOV is not set -CONFIG_KDB_CONTINUE_CATASTROPHIC=0 -# CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_LZMA is not set -# CONFIG_KERNEL_LZO is not set -# CONFIG_KEXEC_FILE is not set -CONFIG_KEXEC=y -# CONFIG_KEYBOARD_ADC is not set -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_CAP11XX is not set -# CONFIG_KEYBOARD_DLINK_DIR685 is not set -# CONFIG_KEYBOARD_GPIO is not set -# CONFIG_KEYBOARD_GPIO_POLLED is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_LM8333 is not set -# CONFIG_KEYBOARD_MATRIX is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MCS is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OMAP4 is not set -# CONFIG_KEYBOARD_OPENCORES is not set -CONFIG_KEYBOARD_PMIC8XXX=m -CONFIG_KEYBOARD_QT1070=m -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_SAMSUNG is not set -# CONFIG_KEYBOARD_SH_KEYSC is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_TCA8418 is not set -CONFIG_KEYBOARD_TM2_TOUCHKEY=m -# CONFIG_KEYBOARD_XTKBD is not set -CONFIG_KEY_DH_OPERATIONS=y -CONFIG_KEYS=y -# CONFIG_KGDB_KDB is not set -CONFIG_KGDB_LOW_LEVEL_TRAP=y -CONFIG_KGDB_SERIAL_CONSOLE=y -# CONFIG_KGDB_TESTS_ON_BOOT is not set -CONFIG_KGDB_TESTS=y -CONFIG_KGDB=y -CONFIG_KINGSUN_DONGLE=m -# CONFIG_KMX61 is not set -CONFIG_KPROBE_EVENTS=y -# CONFIG_KPROBES_SANITY_TEST is not set -CONFIG_KPROBES=y -CONFIG_KS0108_DELAY=2 -CONFIG_KS0108=m -CONFIG_KS0108_PORT=0x378 -# CONFIG_KS7010 is not set -# CONFIG_KS8842 is not set -# CONFIG_KS8851 is not set -# CONFIG_KS8851_MLL is not set -CONFIG_KS959_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KSM=y -CONFIG_KSZ884X_PCI=m -CONFIG_KVM_BOOK3S_64_HV=m -CONFIG_KVM_BOOK3S_64=m -CONFIG_KVM_BOOK3S_64_PR=m -# CONFIG_KVM_BOOK3S_HV_EXIT_TIMING is not set -# CONFIG_KVM_EXIT_TIMING is not set -CONFIG_KVM_GUEST=y -CONFIG_KVM_XICS=y -CONFIG_KXCJK1013=m -# CONFIG_KXSD9 is not set -CONFIG_L2TP_DEBUGFS=m -CONFIG_L2TP_ETH=m -CONFIG_L2TP_IP=m -CONFIG_L2TP=m -CONFIG_L2TP_V3=y -# CONFIG_LANCE is not set -# CONFIG_LAPB is not set -CONFIG_LATENCYTOP=y -# CONFIG_LATTICE_ECP3_CONFIG is not set -# CONFIG_LCD_AMS369FG06 is not set -CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_HX8357 is not set -# CONFIG_LCD_ILI922X is not set -# CONFIG_LCD_ILI9320 is not set -# CONFIG_LCD_L4F00242T03 is not set -# CONFIG_LCD_LD9040 is not set -# CONFIG_LCD_LMS283GF05 is not set -# CONFIG_LCD_LMS501KF03 is not set -# CONFIG_LCD_LTV350QV is not set -CONFIG_LCD_PLATFORM=m -# CONFIG_LCD_S6E63M0 is not set -# CONFIG_LCD_TDO24M is not set -# CONFIG_LCD_VGG2432A4 is not set -# CONFIG_LDM_DEBUG is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LEDS_AAT1290 is not set -# CONFIG_LEDS_BCM6328 is not set -# CONFIG_LEDS_BCM6358 is not set -# CONFIG_LEDS_BD2802 is not set -CONFIG_LEDS_BLINKM=m -CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y -CONFIG_LEDS_CLASS_FLASH=m -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_CLEVO_MAIL=m -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_GPIO is not set -# CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set -# CONFIG_LEDS_KTD2692 is not set -CONFIG_LEDS_LM3530=m -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_LM3642 is not set -# CONFIG_LEDS_LOCOMO is not set -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_LP3952=m -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_LP5562 is not set -# CONFIG_LEDS_LP55XX_COMMON is not set -# CONFIG_LEDS_LP8501 is not set -# CONFIG_LEDS_LP8860 is not set -CONFIG_LEDS_LT3593=m -CONFIG_LEDS_MLXCPLD=m -# CONFIG_LEDS_NET48XX is not set -CONFIG_LEDS_NIC78BX=m -# CONFIG_LEDS_OT200 is not set -# CONFIG_LEDS_PCA9532 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -CONFIG_LEDS_POWERNV=m -# CONFIG_LEDS_PWM is not set -CONFIG_LEDS_REGULATOR=m -# CONFIG_LEDS_S3C24XX is not set -# CONFIG_LEDS_SYSCON is not set -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_TLC591XX is not set -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_CAMERA=m -# CONFIG_LEDS_TRIGGER_CPU is not set -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m -CONFIG_LEDS_TRIGGER_DISK=y -CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_LEDS_TRIGGER_MTD=y -CONFIG_LEDS_TRIGGER_ONESHOT=m -CONFIG_LEDS_TRIGGER_PANIC=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_TRANSIENT=m -CONFIG_LEDS_USER=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m -CONFIG_LED_TRIGGER_PHY=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -CONFIG_LIB80211_CRYPT_WEP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_LIB80211=m -CONFIG_LIBCRC32C=m -CONFIG_LIBERTAS_CS=m -# CONFIG_LIBERTAS_DEBUG is not set -CONFIG_LIBERTAS=m -CONFIG_LIBERTAS_MESH=y -CONFIG_LIBERTAS_SDIO=m -# CONFIG_LIBERTAS_SPI is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_LIBERTAS_USB=m -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -# CONFIG_LIBIPW_DEBUG is not set -# CONFIG_LIBNVDIMM is not set -# CONFIG_LIDAR_LITE_V2 is not set -CONFIG_LIQUIDIO_VF=m -CONFIG_LIRC_BT829=m -CONFIG_LIRC_IMON=m -CONFIG_LIRC=m -CONFIG_LIRC_PARALLEL=m -CONFIG_LIRC_SERIAL=m -CONFIG_LIRC_SERIAL_TRANSMITTER=y -CONFIG_LIRC_SIR=m -CONFIG_LIRC_STAGING=y -CONFIG_LIRC_ZILOG=m -CONFIG_LITELINK_DONGLE=m -# CONFIG_LIVEPATCH is not set -# CONFIG_LKDTM is not set -# CONFIG_LLC2 is not set -CONFIG_LLC=m -CONFIG_LMP91000=m -# CONFIG_LNET is not set -# CONFIG_LOAD_UEFI_KEYS is not set -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_LOCKD=m -# CONFIG_LOCK_DOWN_KERNEL is not set -CONFIG_LOCKD_V4=y -# CONFIG_LOCK_STAT is not set -# CONFIG_LOCK_TORTURE_TEST is not set -CONFIG_LOCKUP_DETECTOR=y -CONFIG_LOG_BUF_SHIFT=18 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -# CONFIG_LOGFS is not set -CONFIG_LOGIG940_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_LOGITECH_FF=y -CONFIG_LOGIWHEELS_FF=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO=y -CONFIG_LOOPBACK_TARGET=m -CONFIG_LPARCFG=y -# CONFIG_LPC_ICH is not set -CONFIG_LP_CONSOLE=y -# CONFIG_LPC_SCH is not set -CONFIG_LPFC_NVME_INITIATOR=y -CONFIG_LPFC_NVME_TARGET=y -CONFIG_LSI_ET1011C_PHY=m -CONFIG_LSM_MMAP_MIN_ADDR=65536 -# CONFIG_LTC2485 is not set -# CONFIG_LTC2497 is not set -# CONFIG_LTC2632 is not set -# CONFIG_LTE_GDM724X is not set -# CONFIG_LTR501 is not set -# CONFIG_LUSTRE_FS is not set -CONFIG_LWTUNNEL_BPF=y -CONFIG_LWTUNNEL=y -CONFIG_LXT_PHY=m -# CONFIG_M62332 is not set -CONFIG_MA600_DONGLE=m -CONFIG_MAC80211_DEBUGFS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_MAC80211_HWSIM=m -CONFIG_MAC80211_LEDS=y -CONFIG_MAC80211=m -CONFIG_MAC80211_MESH=y -# CONFIG_MAC80211_MESSAGE_TRACING is not set -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC802154=m -CONFIG_MACB=m -CONFIG_MACB_PCI=m -CONFIG_MACB_USE_HWSTAMP=y -CONFIG_MAC_EMUMOUSEBTN=y -CONFIG_MACHZ_WDT=m -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_MAC_PARTITION=y -CONFIG_MACSEC=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -# CONFIG_MAG3110 is not set -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 -CONFIG_MAGIC_SYSRQ_SERIAL=y -CONFIG_MAGIC_SYSRQ=y -# CONFIG_MAILBOX is not set -# CONFIG_MAILBOX_TEST is not set -# CONFIG_MANDATORY_FILE_LOCKING is not set -CONFIG_MANTIS_CORE=m -CONFIG_MARVELL_10G_PHY=m -CONFIG_MARVELL_PHY=m -# CONFIG_MATH_EMULATION is not set -# CONFIG_MAX1027 is not set -# CONFIG_MAX11100 is not set -# CONFIG_MAX1118 is not set -CONFIG_MAX1363=m -CONFIG_MAX30100=m -# CONFIG_MAX30102 is not set -# CONFIG_MAX44000 is not set -# CONFIG_MAX517 is not set -# CONFIG_MAX5481 is not set -# CONFIG_MAX5487 is not set -# CONFIG_MAX5821 is not set -# CONFIG_MAX63XX_WATCHDOG is not set -# CONFIG_MAX9611 is not set -# CONFIG_MAXIM_THERMOCOUPLE is not set -CONFIG_MAX_RAW_DEVS=8192 -# CONFIG_MC3230 is not set -# CONFIG_MCB is not set -# CONFIG_MCE_AMD_INJ is not set -CONFIG_MCP2120_DONGLE=m -# CONFIG_MCP320X is not set -# CONFIG_MCP3422 is not set -# CONFIG_MCP4131 is not set -# CONFIG_MCP4531 is not set -# CONFIG_MCP4725 is not set -# CONFIG_MCP4922 is not set -CONFIG_MCS_FIR=m -# CONFIG_MCU_MPC8349EMITX is not set -CONFIG_MD_AUTODETECT=y -# CONFIG_MD_CLUSTER is not set -CONFIG_MD_FAULTY=m -CONFIG_MDIO_BCM_UNIMAC=m -CONFIG_MDIO_BITBANG=m -# CONFIG_MDIO_BUS_MUX_GPIO is not set -# CONFIG_MDIO_BUS_MUX is not set -# CONFIG_MDIO_BUS_MUX_MMIOREG is not set -CONFIG_MDIO_GPIO=m -# CONFIG_MDIO_HISI_FEMAC is not set -# CONFIG_MDIO_OCTEON is not set -# CONFIG_MDIO_THUNDER is not set -CONFIG_MD_LINEAR=m -CONFIG_MD_MULTIPATH=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID456=m -CONFIG_MD=y -CONFIG_MEDIA_ALTERA_CI=m -CONFIG_MEDIA_ANALOG_TV_SUPPORT=y -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_CEC_DEBUG=y -CONFIG_MEDIA_CEC_RC=y -CONFIG_MEDIA_CEC_SUPPORT=y -# CONFIG_MEDIA_CONTROLLER_DVB is not set -CONFIG_MEDIA_CONTROLLER=y -CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -CONFIG_MEDIA_PCI_SUPPORT=y -CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_MEDIA_RC_SUPPORT=y -# CONFIG_MEDIA_SDR_SUPPORT is not set -CONFIG_MEDIA_SUBDRV_AUTOSELECT=y -CONFIG_MEDIA_SUPPORT=m -# CONFIG_MEDIA_TUNER_MSI001 is not set -CONFIG_MEDIA_USB_SUPPORT=y -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_SAS=m -CONFIG_MEMCG_SWAP_ENABLED=y -CONFIG_MEMCG_SWAP=y -CONFIG_MEMCG=y -CONFIG_MEMORY_FAILURE=y -# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set -CONFIG_MEMORY_HOTPLUG=y -CONFIG_MEMORY_HOTREMOVE=y -# CONFIG_MEMORY is not set -CONFIG_MEM_SOFT_DIRTY=y -# CONFIG_MEMSTICK_DEBUG is not set -CONFIG_MEMSTICK_JMICRON_38X=m -CONFIG_MEMSTICK=m -CONFIG_MEMSTICK_R592=m -CONFIG_MEMSTICK_REALTEK_PCI=m -CONFIG_MEMSTICK_REALTEK_USB=m -CONFIG_MEMSTICK_TIFM_MS=m -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -# CONFIG_MEMTEST is not set -# CONFIG_MEN_A21_WDT is not set -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_MFD_88PM800 is not set -# CONFIG_MFD_88PM805 is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_AAT2870_CORE is not set -# CONFIG_MFD_ACT8945A is not set -# CONFIG_MFD_ARIZONA_I2C is not set -# CONFIG_MFD_ARIZONA is not set -# CONFIG_MFD_ARIZONA_SPI is not set -# CONFIG_MFD_AS3711 is not set -# CONFIG_MFD_AS3722 is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_MFD_ATMEL_FLEXCOM is not set -# CONFIG_MFD_ATMEL_HLCDC is not set -# CONFIG_MFD_AXP20X_I2C is not set -# CONFIG_MFD_AXP20X is not set -# CONFIG_MFD_BCM590XX is not set -CONFIG_MFD_CORE=m -# CONFIG_MFD_CPCAP is not set -# CONFIG_MFD_CROS_EC is not set -# CONFIG_MFD_CS5535 is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_DA9052_SPI is not set -# CONFIG_MFD_DA9055 is not set -# CONFIG_MFD_DA9062 is not set -# CONFIG_MFD_DA9063 is not set -# CONFIG_MFD_DA9150 is not set -# CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_HI6421_PMIC is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_KEMPLD is not set -# CONFIG_MFD_LM3533 is not set -# CONFIG_MFD_LP3943 is not set -# CONFIG_MFD_LP8788 is not set -# CONFIG_MFD_MAX14577 is not set -# CONFIG_MFD_MAX77620 is not set -# CONFIG_MFD_MAX77686 is not set -# CONFIG_MFD_MAX77693 is not set -# CONFIG_MFD_MAX77843 is not set -# CONFIG_MFD_MAX8907 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_MC13XXX_I2C is not set -# CONFIG_MFD_MC13XXX_SPI is not set -# CONFIG_MFD_MENF21BMC is not set -# CONFIG_MFD_MT6397 is not set -# CONFIG_MFD_PALMAS is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RETU is not set -# CONFIG_MFD_RK808 is not set -# CONFIG_MFD_RN5T618 is not set -# CONFIG_MFD_RT5033 is not set -CONFIG_MFD_RTSX_PCI=m -CONFIG_MFD_RTSX_USB=m -# CONFIG_MFD_SEC_CORE is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SKY81452 is not set -CONFIG_MFD_SM501_GPIO=y -CONFIG_MFD_SM501=m -# CONFIG_MFD_SMSC is not set -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_SYSCON is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_MFD_TI_AM335X_TSCADC is not set -# CONFIG_MFD_TI_LMU is not set -# CONFIG_MFD_TI_LP873X is not set -# CONFIG_MFD_TI_LP87565 is not set -# CONFIG_MFD_TIMBERDALE is not set -# CONFIG_MFD_TPS65086 is not set -# CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TPS65217 is not set -# CONFIG_MFD_TPS65218 is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS65912 is not set -# CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_TPS80031 is not set -CONFIG_MFD_VIPERBOARD=m -CONFIG_MFD_VX855=m -CONFIG_MFD_WL1273_CORE=m -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM831X is not set -# CONFIG_MFD_WM831X_SPI is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8350 is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MGCOGE is not set -# CONFIG_MICREL_KS8995MA is not set -CONFIG_MICREL_PHY=m -CONFIG_MICROCHIP_KSZ=m -CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m -CONFIG_MICROCHIP_PHY=m -CONFIG_MICROSEMI_PHY=m -CONFIG_MIGRATION=y -CONFIG_MII=m -CONFIG_MINIX_FS=m -CONFIG_MINIX_SUBPARTITION=y -CONFIG_MISC_FILESYSTEMS=y -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_L1OIP=m -CONFIG_MISDN=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_W6692=m -CONFIG_MKISS=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_EN_DCB=y -CONFIG_MLX4_EN=m -CONFIG_MLX4_INFINIBAND=m -CONFIG_MLX5_CORE_EN_DCB=y -CONFIG_MLX5_CORE_EN=y -CONFIG_MLX5_CORE_IPOIB=y -CONFIG_MLX5_CORE=m -# CONFIG_MLX5_EN_IPSEC is not set -# CONFIG_MLX5_FPGA is not set -CONFIG_MLX5_INFINIBAND=m -# CONFIG_MLX90614 is not set -CONFIG_MLX_CPLD_PLATFORM=m -CONFIG_MLXFW=m -CONFIG_MLXSW_CORE_HWMON=y -CONFIG_MLXSW_CORE=m -CONFIG_MLXSW_CORE_THERMAL=y -CONFIG_MLXSW_I2C=m -CONFIG_MLXSW_MINIMAL=m -CONFIG_MLXSW_PCI=m -CONFIG_MLXSW_SPECTRUM_DCB=y -CONFIG_MLXSW_SPECTRUM=m -CONFIG_MLXSW_SWITCHIB=m -CONFIG_MLXSW_SWITCHX2=m -# CONFIG_MMA7455_I2C is not set -# CONFIG_MMA7455_SPI is not set -CONFIG_MMA7660=m -# CONFIG_MMA8452 is not set -# CONFIG_MMA9551 is not set -# CONFIG_MMA9553 is not set -# CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_CB710=m -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC=m -# CONFIG_MMC_MTK is not set -CONFIG_MMC_REALTEK_PCI=m -CONFIG_MMC_REALTEK_USB=m -CONFIG_MMC_RICOH_MMC=y -CONFIG_MMC_SDHCI_ACPI=m -CONFIG_MMC_SDHCI_CADENCE=m -# CONFIG_MMC_SDHCI_F_SDH30 is not set -CONFIG_MMC_SDHCI=m -# CONFIG_MMC_SDHCI_OF_ARASAN is not set -# CONFIG_MMC_SDHCI_OF_AT91 is not set -# CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF_HLWD is not set -CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_SDHCI_PLTFM=m -CONFIG_MMC_SDHCI_XENON=m -CONFIG_MMC_SDRICOH_CS=m -# CONFIG_MMC_SPI is not set -# CONFIG_MMC_TEST is not set -CONFIG_MMC_TIFM_SD=m -# CONFIG_MMC_TOSHIBA_PCI is not set -# CONFIG_MMC_USDHI6ROL0 is not set -CONFIG_MMC_USHC=m -CONFIG_MMC_VIA_SDMMC=m -CONFIG_MMC_VUB300=m -CONFIG_MMC_WBSD=m -CONFIG_MMU=y -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_MODULE_FORCE_LOAD is not set -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_MODULE_SIG_ALL=y -# CONFIG_MODULE_SIG_FORCE is not set -CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" -# CONFIG_MODULE_SIG_SHA1 is not set -CONFIG_MODULE_SIG_SHA256=y -CONFIG_MODULE_SIG=y -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MOST is not set -CONFIG_MOUSE_APPLETOUCH=m -# CONFIG_MOUSE_ATIXL is not set -CONFIG_MOUSE_BCM5974=m -CONFIG_MOUSE_CYAPA=m -CONFIG_MOUSE_ELAN_I2C_I2C=y -CONFIG_MOUSE_ELAN_I2C=m -CONFIG_MOUSE_ELAN_I2C_SMBUS=y -# CONFIG_MOUSE_GPIO is not set -CONFIG_MOUSE_PS2_ELANTECH=y -CONFIG_MOUSE_PS2_SENTELIC=y -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_SERIAL=m -CONFIG_MOUSE_SYNAPTICS_I2C=m -CONFIG_MOUSE_SYNAPTICS_USB=m -CONFIG_MOUSE_VSXXXAA=m -CONFIG_MOVABLE_NODE=y -# CONFIG_MOXA_INTELLIO is not set -# CONFIG_MOXA_SMARTIO is not set -# CONFIG_MPC5121_ADS is not set -# CONFIG_MPIC_MSGR is not set -# CONFIG_MPL115_I2C is not set -# CONFIG_MPL115 is not set -# CONFIG_MPL115_SPI is not set -# CONFIG_MPL3115 is not set -CONFIG_MPLS_IPTUNNEL=m -CONFIG_MPLS_ROUTING=m -CONFIG_MPU3050_I2C=m -CONFIG_MQ_IOSCHED_DEADLINE=y -CONFIG_MQ_IOSCHED_KYBER=m -# CONFIG_MS5611 is not set -# CONFIG_MS5637 is not set -# CONFIG_MS_BLOCK is not set -CONFIG_MSDOS_FS=m -CONFIG_MSDOS_PARTITION=y -CONFIG_MSI_BITMAP_SELFTEST=y -# CONFIG_MSM_GCC_8994 is not set -CONFIG_MSPRO_BLOCK=m -CONFIG_MT7601U=m -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_AR7_PARTS is not set -# CONFIG_MTD_BLKDEVS is not set -# CONFIG_MTD_BLOCK2MTD is not set -# CONFIG_MTD_BLOCK is not set -# CONFIG_MTD_BLOCK_RO 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_CFI is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_DOCG3 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_JEDECPROBE is not set -# CONFIG_MTD_LPDDR is not set -CONFIG_MTD=m -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MCHP23K256 is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_NAND_DENALI_DT is not set -# CONFIG_MTD_NAND_DENALI_PCI is not set -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_NAND_ECC_BCH is not set -# CONFIG_MTD_NAND_FSL_ELBC is not set -# CONFIG_MTD_NAND_HISI504 is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_NAND_OMAP2 is not set -# CONFIG_MTD_NAND_OXNAS is not set -CONFIG_MTD_OF_PARTS=m -# CONFIG_MTD_ONENAND is not set -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_PARTITIONED_MASTER is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_PLATRAM is not set -# CONFIG_MTD_PMC551 is not set -CONFIG_MTD_POWERNV_FLASH=m -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_SPI_NOR is not set -# CONFIG_MTD_SST25L is not set -# CONFIG_MTD_SWAP is not set -# CONFIG_MTD_TESTS is not set -# CONFIG_MTD_TS5500 is not set -CONFIG_MTD_UBI_BEB_LIMIT=20 -# CONFIG_MTD_UBI_BLOCK is not set -# CONFIG_MTD_UBI_FASTMAP is not set -# CONFIG_MTD_UBI_GLUEBI is not set -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MULTIPLEXER=m -CONFIG_MUX_ADG792A=m -CONFIG_MUX_GPIO=m -CONFIG_MUX_MMIO=m -CONFIG_MVMDIO=m -CONFIG_MWAVE=m -CONFIG_MWIFIEX=m -CONFIG_MWIFIEX_PCIE=m -CONFIG_MWIFIEX_SDIO=m -CONFIG_MWIFIEX_USB=m -CONFIG_MWL8K=m -# CONFIG_MXC4005 is not set -# CONFIG_MXC6255 is not set -CONFIG_MYRI10GE_DCA=y -CONFIG_MYRI10GE=m -CONFIG_NAMESPACES=y -CONFIG_NATIONAL_PHY=m -CONFIG_NATSEMI=m -# CONFIG_NAU7802 is not set -# CONFIG_NBPFAXI_DMA is not set -CONFIG_NCPFS_EXTRAS=y -CONFIG_NCPFS_IOCTL_LOCKING=y -CONFIG_NCP_FS=m -CONFIG_NCPFS_NFS_NS=y -CONFIG_NCPFS_NLS=y -CONFIG_NCPFS_OS2_NS=y -CONFIG_NCPFS_PACKET_SIGNING=y -CONFIG_NCPFS_SMALLDOS=y -CONFIG_NCPFS_STRONG=y -# CONFIG_ND_BLK is not set -CONFIG_NE2K_PCI=m -# CONFIG_NET_9P_DEBUG is not set -CONFIG_NET_9P=m -CONFIG_NET_9P_RDMA=m -CONFIG_NET_9P_VIRTIO=m -CONFIG_NET_9P_XEN=m -CONFIG_NET_ACT_BPF=m -CONFIG_NET_ACT_CONNMARK=m -CONFIG_NET_ACT_CSUM=m -CONFIG_NET_ACT_GACT=m -CONFIG_NET_ACT_IFE=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_SAMPLE=m -CONFIG_NET_ACT_SIMP=m -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_ACT_SKBMOD=m -CONFIG_NET_ACT_TUNNEL_KEY=m -CONFIG_NET_ACT_VLAN=m -CONFIG_NET_CADENCE=y -CONFIG_NET_CALXEDA_XGMAC=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_BPF=m -CONFIG_NET_CLS_CGROUP=y -CONFIG_NET_CLS_FLOWER=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_IND=y -CONFIG_NET_CLS_MATCHALL=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_U32=m -CONFIG_NET_CLS=y -CONFIG_NETCONSOLE_DYNAMIC=y -CONFIG_NETCONSOLE=m -CONFIG_NET_CORE=y -# CONFIG_NET_DCCPPROBE is not set -CONFIG_NETDEVICES=y -CONFIG_NET_DEVLINK=m -CONFIG_NET_DROP_MONITOR=y -CONFIG_NET_DSA_BCM_SF2=m -CONFIG_NET_DSA_HWMON=y -CONFIG_NET_DSA_LOOP=m -CONFIG_NET_DSA=m -CONFIG_NET_DSA_MT7530=m -CONFIG_NET_DSA_MV88E6060=m -CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y -CONFIG_NET_DSA_MV88E6XXX=m -CONFIG_NET_DSA_QCA8K=m -CONFIG_NET_DSA_SMSC_LAN9303_I2C=m -CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m -CONFIG_NET_EMATCH_CANID=m -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_IPSET=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH=y -CONFIG_NET_FC=y -CONFIG_NETFILTER_ADVANCED=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_INGRESS=y -CONFIG_NETFILTER_NETLINK_ACCT=m -# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_XTABLES=y -CONFIG_NETFILTER_XT_CONNMARK=m -CONFIG_NETFILTER_XT_MARK=m -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_BPF=m -CONFIG_NETFILTER_XT_MATCH_CGROUP=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_CPU=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ECN=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPCOMP=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m -CONFIG_NETFILTER_XT_MATCH_L2TP=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_NFACCT=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_NAT=m -CONFIG_NETFILTER_XT_SET=m -CONFIG_NETFILTER_XT_TARGET_AUDIT=m -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m -CONFIG_NETFILTER_XT_TARGET_CT=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HMARK=m -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_LOG=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NETMAP=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_REDIRECT=m -CONFIG_NETFILTER_XT_TARGET_SECMARK=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m -CONFIG_NETFILTER_XT_TARGET_TEE=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER=y -CONFIG_NET_FOU_IP_TUNNELS=y -CONFIG_NET_FOU=m -CONFIG_NET_IFE=m -CONFIG_NET_IFE_SKBMARK=m -CONFIG_NET_IFE_SKBPRIO=m -CONFIG_NET_IFE_SKBTCINDEX=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPIP=m -CONFIG_NET_IPVTI=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_NET_L3_MASTER_DEV=y -CONFIG_NETLABEL=y -CONFIG_NETLINK_DIAG=m -CONFIG_NET_MPLS_GSO=m -CONFIG_NET_NCSI=y -CONFIG_NET_NS=y -CONFIG_NET_PACKET_ENGINE=y -CONFIG_NET_PKTGEN=m -CONFIG_NET_POLL_CONTROLLER=y -CONFIG_NETROM=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_CHOKE=m -CONFIG_NET_SCH_CODEL=m -# CONFIG_NET_SCH_DEFAULT is not set -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_FQ_CODEL=y -CONFIG_NET_SCH_FQ=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_HHF=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_SCH_MQPRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_PIE=m -CONFIG_NET_SCH_PLUG=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_QFQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFB=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCTPPROBE=m -CONFIG_NET_SWITCHDEV=y -# CONFIG_NET_TCPPROBE is not set -CONFIG_NET_TEAM=m -CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m -CONFIG_NET_TEAM_MODE_BROADCAST=m -CONFIG_NET_TEAM_MODE_LOADBALANCE=m -CONFIG_NET_TEAM_MODE_RANDOM=m -CONFIG_NET_TEAM_MODE_ROUNDROBIN=m -CONFIG_NET_TULIP=y -CONFIG_NET_VENDOR_3COM=y -CONFIG_NET_VENDOR_8390=y -CONFIG_NET_VENDOR_ADAPTEC=y -CONFIG_NET_VENDOR_AGERE=y -# CONFIG_NET_VENDOR_ALACRITECH is not set -CONFIG_NET_VENDOR_ALTEON=y -CONFIG_NET_VENDOR_AMAZON=y -CONFIG_NET_VENDOR_AMD=y -CONFIG_NET_VENDOR_AQUANTIA=y -CONFIG_NET_VENDOR_ARC=y -CONFIG_NET_VENDOR_ATHEROS=y -# CONFIG_NET_VENDOR_AURORA is not set -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_NET_VENDOR_CAVIUM is not set -CONFIG_NET_VENDOR_CHELSIO=y -CONFIG_NET_VENDOR_CISCO=y -CONFIG_NET_VENDOR_DEC=y -CONFIG_NET_VENDOR_DLINK=y -CONFIG_NET_VENDOR_EMULEX=y -CONFIG_NET_VENDOR_EXAR=y -# CONFIG_NET_VENDOR_EZCHIP is not set -# CONFIG_NET_VENDOR_FARADAY is not set -# CONFIG_NET_VENDOR_FUJITSU is not set -# CONFIG_NET_VENDOR_HISILICON is not set -# CONFIG_NET_VENDOR_HP is not set -# CONFIG_NET_VENDOR_I825XX is not set -CONFIG_NET_VENDOR_IBM=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_NET_VENDOR_MARVELL=y -CONFIG_NET_VENDOR_MICREL=y -# CONFIG_NET_VENDOR_MICROCHIP is not set -CONFIG_NET_VENDOR_MYRI=y -CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NET_VENDOR_NVIDIA=y -CONFIG_NET_VENDOR_OKI=y -# CONFIG_NET_VENDOR_PASEMI is not set -CONFIG_NET_VENDOR_QLOGIC=y -# CONFIG_NET_VENDOR_QUALCOMM is not set -CONFIG_NET_VENDOR_RDC=y -CONFIG_NET_VENDOR_REALTEK=y -# CONFIG_NET_VENDOR_RENESAS is not set -CONFIG_NET_VENDOR_ROCKER=y -# CONFIG_NET_VENDOR_SAMSUNG is not set -# CONFIG_NET_VENDOR_SEEQ is not set -CONFIG_NET_VENDOR_SILAN=y -CONFIG_NET_VENDOR_SIS=y -CONFIG_NET_VENDOR_SMSC=y -# CONFIG_NET_VENDOR_SOLARFLARE is not set -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_NET_VENDOR_SUN=y -# CONFIG_NET_VENDOR_SYNOPSYS is not set -CONFIG_NET_VENDOR_TEHUTI=y -CONFIG_NET_VENDOR_TI=y -# CONFIG_NET_VENDOR_TOSHIBA is not set -CONFIG_NET_VENDOR_VIA=y -CONFIG_NET_VENDOR_WIZNET=y -# CONFIG_NET_VENDOR_XILINX is not set -CONFIG_NET_VENDOR_XIRCOM=y -CONFIG_NET_VRF=m -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETXEN_NIC=m -CONFIG_NET=y -CONFIG_NEW_LEDS=y -CONFIG_NFC_DIGITAL=m -# CONFIG_NFC_FDP is not set -CONFIG_NFC_HCI=m -CONFIG_NFC=m -CONFIG_NFC_MICROREAD_I2C=m -CONFIG_NFC_MICROREAD=m -# CONFIG_NFC_MRVL_I2C is not set -CONFIG_NFC_MRVL=m -# CONFIG_NFC_MRVL_SPI is not set -CONFIG_NFC_MRVL_USB=m -CONFIG_NFC_NCI=m -# CONFIG_NFC_NCI_SPI is not set -# CONFIG_NFC_NCI_UART is not set -CONFIG_NFC_NXP_NCI_I2C=m -CONFIG_NFC_NXP_NCI=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_PPTP=m -# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set -CONFIG_NF_CONNTRACK_PROCFS=y -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SECMARK=y -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_SNMP=m -CONFIG_NF_CONNTRACK_TFTP=m -# CONFIG_NF_CONNTRACK_TIMEOUT is not set -CONFIG_NF_CONNTRACK_TIMESTAMP=y -CONFIG_NF_CONNTRACK_ZONES=y -CONFIG_NFC_PN533_I2C=m -CONFIG_NFC_PN533=m -CONFIG_NFC_PN533_USB=m -CONFIG_NFC_PN544_I2C=m -CONFIG_NFC_PN544=m -CONFIG_NFC_PORT100=m -# CONFIG_NFC_S3FWRN5_I2C is not set -CONFIG_NFC_SHDLC=y -CONFIG_NFC_SIM=m -CONFIG_NFC_ST21NFCA_I2C=m -CONFIG_NFC_ST21NFCA=m -# CONFIG_NFC_ST95HF is not set -# CONFIG_NFC_ST_NCI_I2C is not set -# CONFIG_NFC_ST_NCI is not set -# CONFIG_NFC_ST_NCI_SPI is not set -CONFIG_NF_CT_NETLINK_HELPER=m -CONFIG_NF_CT_NETLINK=m -# CONFIG_NF_CT_NETLINK_TIMEOUT is not set -CONFIG_NF_CT_PROTO_DCCP=y -CONFIG_NF_CT_PROTO_SCTP=y -CONFIG_NF_CT_PROTO_UDPLITE=y -CONFIG_NFC_TRF7970A=m -CONFIG_NF_DUP_IPV4=m -CONFIG_NF_DUP_IPV6=m -CONFIG_NF_DUP_NETDEV=m -CONFIG_NF_LOG_ARP=m -CONFIG_NF_LOG_BRIDGE=m -CONFIG_NF_LOG_IPV4=m -CONFIG_NF_LOG_IPV6=m -CONFIG_NF_LOG_NETDEV=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NFP_APP_FLOWER=y -# CONFIG_NFP_DEBUG is not set -CONFIG_NFP=m -# CONFIG_NFP_NET_DEBUG is not set -CONFIG_NFP_NETVF=m -CONFIG_NF_REJECT_IPV6=m -CONFIG_NFSD_BLOCKLAYOUT=y -# CONFIG_NFSD_FAULT_INJECTION is not set -CONFIG_NFSD_FLEXFILELAYOUT=y -CONFIG_NFSD=m -CONFIG_NFSD_PNFS=y -CONFIG_NFSD_SCSILAYOUT=y -CONFIG_NFSD_V3_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V4_SECURITY_LABEL=y -CONFIG_NFSD_V4=y -CONFIG_NFS_FSCACHE=y -CONFIG_NFS_FS=m -CONFIG_NF_SOCKET_IPV4=m -CONFIG_NF_SOCKET_IPV6=m -CONFIG_NFS_SWAP=y -# CONFIG_NFS_USE_LEGACY_DNS is not set -# CONFIG_NFS_V2 is not set -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V3=m -CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" -# CONFIG_NFS_V4_1_MIGRATION is not set -CONFIG_NFS_V4_1=y -CONFIG_NFS_V4_2=y -CONFIG_NFS_V4=m -CONFIG_NF_TABLES_ARP=m -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NF_TABLES_INET=m -CONFIG_NF_TABLES_IPV4=m -CONFIG_NF_TABLES_IPV6=m -CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_NETDEV=m -CONFIG_NFT_BRIDGE_META=m -CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NFT_CHAIN_NAT_IPV4=m -CONFIG_NFT_CHAIN_NAT_IPV6=m -CONFIG_NFT_CHAIN_ROUTE_IPV4=m -CONFIG_NFT_CHAIN_ROUTE_IPV6=m -CONFIG_NFT_COMPAT=m -CONFIG_NFT_COUNTER=m -CONFIG_NFT_CT=m -CONFIG_NFT_DUP_IPV4=m -CONFIG_NFT_DUP_IPV6=m -CONFIG_NFT_DUP_NETDEV=m -CONFIG_NFT_EXTHDR=m -CONFIG_NFT_FIB_INET=m -CONFIG_NFT_FIB_IPV4=m -CONFIG_NFT_FIB_IPV6=m -CONFIG_NFT_FWD_NETDEV=m -CONFIG_NFT_HASH=m -CONFIG_NFT_LIMIT=m -# CONFIG_NFTL is not set -CONFIG_NFT_LOG=m -CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_MASQ=m -CONFIG_NFT_META=m -CONFIG_NFT_NAT=m -CONFIG_NFT_NUMGEN=m -CONFIG_NFT_OBJREF=m -CONFIG_NFT_QUEUE=m -CONFIG_NFT_QUOTA=m -CONFIG_NFT_RBTREE=m -CONFIG_NFT_REDIR_IPV4=m -CONFIG_NFT_REDIR_IPV6=m -CONFIG_NFT_REDIR=m -CONFIG_NFT_REJECT_IPV4=m -CONFIG_NFT_REJECT=m -CONFIG_NFT_RT=m -CONFIG_NFT_SET_BITMAP=m -CONFIG_NFT_SET_HASH=m -CONFIG_NFT_SET_RBTREE=m -CONFIG_N_GSM=m -CONFIG_N_HDLC=m -# CONFIG_NI65 is not set -# CONFIG_NI903X_WDT is not set -CONFIG_NILFS2_FS=m -CONFIG_NIU=m -# CONFIG_NL80211_TESTMODE is not set -CONFIG_NL80211=y -CONFIG_NLMON=m -CONFIG_NLS_ASCII=y -CONFIG_NLS_CODEPAGE_1250=m -CONFIG_NLS_CODEPAGE_1251=m -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_737=m -CONFIG_NLS_CODEPAGE_775=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_CODEPAGE_852=m -CONFIG_NLS_CODEPAGE_855=m -CONFIG_NLS_CODEPAGE_857=m -CONFIG_NLS_CODEPAGE_860=m -CONFIG_NLS_CODEPAGE_861=m -CONFIG_NLS_CODEPAGE_862=m -CONFIG_NLS_CODEPAGE_863=m -CONFIG_NLS_CODEPAGE_864=m -CONFIG_NLS_CODEPAGE_865=m -CONFIG_NLS_CODEPAGE_866=m -CONFIG_NLS_CODEPAGE_869=m -CONFIG_NLS_CODEPAGE_874=m -CONFIG_NLS_CODEPAGE_932=m -CONFIG_NLS_CODEPAGE_936=m -CONFIG_NLS_CODEPAGE_949=m -CONFIG_NLS_CODEPAGE_950=m -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_ISO8859_13=m -CONFIG_NLS_ISO8859_14=m -CONFIG_NLS_ISO8859_15=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_ISO8859_2=m -CONFIG_NLS_ISO8859_3=m -CONFIG_NLS_ISO8859_4=m -CONFIG_NLS_ISO8859_5=m -CONFIG_NLS_ISO8859_6=m -CONFIG_NLS_ISO8859_7=m -CONFIG_NLS_ISO8859_8=m -CONFIG_NLS_ISO8859_9=m -CONFIG_NLS_KOI8_R=m -CONFIG_NLS_KOI8_U=m -CONFIG_NLS_MAC_CELTIC=m -CONFIG_NLS_MAC_CENTEURO=m -CONFIG_NLS_MAC_CROATIAN=m -CONFIG_NLS_MAC_CYRILLIC=m -CONFIG_NLS_MAC_GAELIC=m -CONFIG_NLS_MAC_GREEK=m -CONFIG_NLS_MAC_ICELAND=m -CONFIG_NLS_MAC_INUIT=m -CONFIG_NLS_MAC_ROMANIAN=m -CONFIG_NLS_MAC_ROMAN=m -CONFIG_NLS_MAC_TURKISH=m -CONFIG_NLS_UTF8=m -CONFIG_NLS=y -CONFIG_NMI_LOG_BUF_SHIFT=13 -CONFIG_NO_HZ=y -CONFIG_NOP_USB_XCEIV=m -CONFIG_NORTEL_HERMES=m -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -CONFIG_NOUVEAU_DEBUG=5 -CONFIG_NOUVEAU_DEBUG_DEFAULT=3 -CONFIG_NOZOMI=m -CONFIG_NR_CPUS=1024 -CONFIG_NR_DEV_DAX=32768 -CONFIG_NR_IRQS=512 -CONFIG_NS83820=m -CONFIG_NSC_FIR=m -CONFIG_NTB_IDT=m -# CONFIG_NTB is not set -# CONFIG_NTFS_FS is not set -CONFIG_NTP_PPS=y -CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y -CONFIG_NUMA_BALANCING=y -CONFIG_NUMA=y -CONFIG_NVME_FC=m -CONFIG_NVMEM=m -CONFIG_NVME_RDMA=m -CONFIG_NVME_TARGET_FCLOOP=m -CONFIG_NVME_TARGET_FC=m -CONFIG_NVME_TARGET_LOOP=m -CONFIG_NVME_TARGET=m -CONFIG_NVME_TARGET_RDMA=m -# CONFIG_NVM is not set -# CONFIG_NVRAM is not set -# CONFIG_OCFS2_DEBUG_FS is not set -# CONFIG_OCFS2_DEBUG_MASKLOG is not set -CONFIG_OCFS2_FS=m -CONFIG_OCFS2_FS_O2CB=m -# CONFIG_OCFS2_FS_STATS is not set -CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m -# CONFIG_OF_OVERLAY is not set -# CONFIG_OF_UNITTEST is not set -CONFIG_OLD_BELKIN_DONGLE=m -# CONFIG_OMFS_FS is not set -CONFIG_OPAL_PRD=m -CONFIG_OPENVSWITCH_GENEVE=m -CONFIG_OPENVSWITCH_GRE=m -CONFIG_OPENVSWITCH=m -CONFIG_OPENVSWITCH_VXLAN=m -# CONFIG_OPROFILE is not set -CONFIG_OPT3001=m -CONFIG_OPTIMIZE_INLINING=y -CONFIG_OPTPROBES=y -CONFIG_ORANGEFS_FS=m -CONFIG_ORINOCO_USB=m -CONFIG_OSF_PARTITION=y -# CONFIG_OVERLAY_FS_INDEX is not set -CONFIG_OVERLAY_FS=m -# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set -CONFIG_P54_COMMON=m -CONFIG_P54_PCI=m -# CONFIG_P54_SPI is not set -CONFIG_P54_USB=m -CONFIG_PA12203001=m -CONFIG_PACKET_DIAG=m -CONFIG_PACKET=y -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_PANEL is not set -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_TIMEOUT=0 -CONFIG_PANTHERLORD_FF=y -# CONFIG_PARIDE is not set -CONFIG_PARMAN=m -# CONFIG_PARPORT is not set -# CONFIG_PARPORT_PC is not set -CONFIG_PARTITION_ADVANCED=y -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -# CONFIG_PATA_ARASAN_CF is not set -CONFIG_PATA_ARTOP=m -# CONFIG_PATA_ATIIXP is not set -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -# CONFIG_PATA_CYPRESS is not set -CONFIG_PATA_EFAR=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -# CONFIG_PATA_HPT3X3_DMA is not set -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m -# CONFIG_PATA_LEGACY is not set -CONFIG_PATA_MARVELL=m -# CONFIG_PATA_MPIIX is not set -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -# CONFIG_PATA_OLDPIIX is not set -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m -# CONFIG_PATA_PLATFORM is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -# CONFIG_PATA_RZ1000 is not set -# CONFIG_PATA_SC1200 is not set -# CONFIG_PATA_SCH is not set -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m -# CONFIG_PC104 is not set -# CONFIG_PC87413_WDT is not set -CONFIG_PCCARD=y -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_PCH_GBE is not set -# CONFIG_PCI_DEBUG is not set -CONFIG_PCIEAER_INJECT=m -CONFIG_PCIEAER=y -# CONFIG_PCIEASPM_DEBUG is not set -CONFIG_PCIEASPM=y -CONFIG_PCIE_DPC=y -# CONFIG_PCIE_DW_PLAT is not set -CONFIG_PCIE_ECRC=y -# CONFIG_PCI_ENDPOINT is not set -# CONFIG_PCI_ENDPOINT_TEST is not set -# CONFIG_PCIEPORTBUS is not set -CONFIG_PCIE_PTM=y -CONFIG_PCI_HERMES=m -CONFIG_PCI_IOV=y -# CONFIG_PCI_MSI_IRQ_DOMAIN is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_PASID=y -CONFIG_PCIPCWATCHDOG=m -CONFIG_PCI_PRI=y -# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set -CONFIG_PCI_STUB=y -CONFIG_PCI_SW_SWITCHTEC=m -CONFIG_PCI=y -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_AXNET=m -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_HERMES=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_PCNET=m -# CONFIG_PCMCIA_RAYCS is not set -CONFIG_PCMCIA_SMC91C92=m -# CONFIG_PCMCIA_SPECTRUM is not set -# CONFIG_PCMCIA_WL3501 is not set -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_PCMCIA=y -CONFIG_PCNET32=m -CONFIG_PD6729=m -# CONFIG_PDA_POWER is not set -CONFIG_PDC_ADMA=m -# CONFIG_PERCPU_STATS is not set -# CONFIG_PERCPU_TEST is not set -CONFIG_PERF_EVENTS=y -CONFIG_PERSISTENT_KEYRINGS=y -# CONFIG_PGTABLE_MAPPING is not set -# CONFIG_PHANTOM is not set -# CONFIG_PHONE is not set -# CONFIG_PHONET is not set -# CONFIG_PHY_CPCAP_USB is not set -CONFIG_PHYLIB=y -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_QCOM_USB_HSIC is not set -# CONFIG_PHY_QCOM_USB_HS is not set -# CONFIG_PHY_ST_SPEAR1310_MIPHY is not set -# CONFIG_PHY_ST_SPEAR1340_MIPHY is not set -# CONFIG_PHY_TUSB1210 is not set -CONFIG_PID_NS=y -# CONFIG_PINCONF is not set -# CONFIG_PINCTRL_CANNONLAKE is not set -# CONFIG_PINCTRL_IPQ8074 is not set -# CONFIG_PINCTRL is not set -# CONFIG_PINCTRL_MCP23S08 is not set -# CONFIG_PINCTRL_SX150X is not set -# CONFIG_PINMUX is not set -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -# CONFIG_PLATFORM_SI4713 is not set -# CONFIG_PLIP is not set -CONFIG_PLX_HERMES=m -# CONFIG_PM_ADVANCED_DEBUG is not set -# CONFIG_PM_AUTOSLEEP is not set -CONFIG_PMBUS=m -CONFIG_PM_DEBUG=y -# CONFIG_PM_DEVFREQ_EVENT is not set -CONFIG_PM_DEVFREQ=y -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set -CONFIG_PM_STD_PARTITION="" -CONFIG_PM_TEST_SUSPEND=y -CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TRACE=y -# CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=y -CONFIG_PNFS_BLOCK=m -CONFIG_PNFS_OBJLAYOUT=m -CONFIG_POSIX_MQUEUE=y -CONFIG_POWER7_CPU=y -# CONFIG_POWER_AVS is not set -CONFIG_POWERCAP=y -CONFIG_POWERNV_CPUFREQ=y -CONFIG_POWERNV_CPUIDLE=y -# CONFIG_POWERNV_OP_PANEL is not set -# CONFIG_POWER_RESET_BRCMKONA is not set -# CONFIG_POWER_RESET_BRCMSTB is not set -CONFIG_POWER_RESET_GPIO_RESTART=y -CONFIG_POWER_RESET_GPIO=y -# CONFIG_POWER_RESET_LTC2952 is not set -# CONFIG_POWER_RESET_RESTART is not set -# CONFIG_POWER_RESET_SYSCON is not set -# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set -CONFIG_POWER_RESET=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_POWER_SUPPLY=y -CONFIG_PPC_64K_PAGES=y -CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y -CONFIG_PPC64=y -# CONFIG_PPC_82xx is not set -# CONFIG_PPC_83xx is not set -# CONFIG_PPC_86xx is not set -# CONFIG_PPC_CELL is not set -CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y -CONFIG_PPC_DENORMALISATION=y -CONFIG_PPC_DISABLE_WERROR=y -CONFIG_PPC_DT_CPU_FTRS=y -# CONFIG_PPC_EARLY_DEBUG is not set -CONFIG_PPC_EMULATED_STATS=y -# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set -# CONFIG_PPC_IBM_CELL_BLADE is not set -# CONFIG_PPC_ICSWX_PID is not set -# CONFIG_PPC_ICSWX_USE_SIGILL is not set -CONFIG_PPC_ICSWX=y -# CONFIG_PPC_MAPLE is not set -# CONFIG_PPC_MPC5200_LPBFIFO is not set -CONFIG_PPC_OF_BOOT_TRAMPOLINE=y -# CONFIG_PPC_PASEMI is not set -# CONFIG_PPC_PMAC64 is not set -# CONFIG_PPC_PMAC is not set -CONFIG_PPC_POWERNV=y -# CONFIG_PPC_PS3 is not set -CONFIG_PPC_PSERIES=y -# CONFIG_PPC_PTDUMP is not set -CONFIG_PPC_RADIX_MMU=y -CONFIG_PPC_SMLPAR=y -CONFIG_PPC_SPLPAR=y -CONFIG_PPC_SUBPAGE_PROT=y -CONFIG_PPC_TRANSACTIONAL_MEM=y -CONFIG_PPC=y -CONFIG_PPDEV=m -CONFIG_PPP_ASYNC=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP=m -CONFIG_PPP_MPPE=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPPOATM=m -CONFIG_PPPOE=m -CONFIG_PPPOL2TP=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPS_CLIENT_GPIO=m -# CONFIG_PPS_CLIENT_KTIMER is not set -CONFIG_PPS_CLIENT_LDISC=m -# CONFIG_PPS_DEBUG is not set -CONFIG_PPS=m -CONFIG_PPTP=m -# CONFIG_PREEMPT is not set -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_PRINTER=m -CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=12 -CONFIG_PRINTK_TIME=y -# CONFIG_PRINT_QUOTA_WARNING is not set -CONFIG_PRINT_STACK_DEPTH=64 -# CONFIG_PRISM2_USB is not set -# CONFIG_PRISM54 is not set -CONFIG_PROC_CHILDREN=y -CONFIG_PROC_EVENTS=y -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_PROC_PID_CPUSET=y -CONFIG_PROC_VMCORE=y -CONFIG_PROFILING=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_PS3_VRAM is not set -CONFIG_PSAMPLE=m -CONFIG_PSERIES_CPUIDLE=y -CONFIG_PSERIES_ENERGY=m -# CONFIG_PSTORE_CONSOLE is not set -# CONFIG_PSTORE_FTRACE is not set -# CONFIG_PSTORE_PMSG is not set -CONFIG_PSTORE_RAM=m -CONFIG_PSTORE=y -CONFIG_PTP_1588_CLOCK=m -CONFIG_PTP_1588_CLOCK_PCH=m -# CONFIG_PWM_FSL_FTM is not set -CONFIG_PWM_HIBVT=m -# CONFIG_PWM_PCA9685 is not set -CONFIG_PWM=y -CONFIG_PWRSEQ_EMMC=m -CONFIG_PWRSEQ_SD8787=m -CONFIG_PWRSEQ_SIMPLE=m -# CONFIG_QCA7000 is not set -# CONFIG_QCA7000_SPI is not set -# CONFIG_QCA7000_UART is not set -# CONFIG_QCOM_EMAC is not set -# CONFIG_QCOM_HIDMA is not set -# CONFIG_QCOM_HIDMA_MGMT is not set -CONFIG_QEDE=m -CONFIG_QEDF=m -CONFIG_QEDI=m -CONFIG_QED=m -CONFIG_QED_SRIOV=y -# CONFIG_QFMT_V1 is not set -CONFIG_QFMT_V2=y -CONFIG_QLA3XXX=m -CONFIG_QLCNIC_DCB=y -CONFIG_QLCNIC_HWMON=y -CONFIG_QLCNIC=m -CONFIG_QLCNIC_SRIOV=y -CONFIG_QLGE=m -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX6FS_FS is not set -CONFIG_QSEMI_PHY=m -CONFIG_QTNFMAC_PEARL_PCIE=m -CONFIG_QUOTACTL=y -# CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_QUOTA=y -CONFIG_R3964=m -CONFIG_R6040=m -CONFIG_R8169=m -# CONFIG_R8188EU is not set -CONFIG_R8712U=m -CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) -CONFIG_RADIO_ADAPTERS=y -CONFIG_RADIO_AZTECH=m -CONFIG_RADIO_CADET=m -CONFIG_RADIO_GEMTEK=m -CONFIG_RADIO_MAXIRADIO=m -# CONFIG_RADIO_MIROPCM20 is not set -CONFIG_RADIO_RTRACK2=m -CONFIG_RADIO_RTRACK=m -CONFIG_RADIO_SAA7706H=m -CONFIG_RADIO_SF16FMI=m -CONFIG_RADIO_SF16FMR2=m -CONFIG_RADIO_SHARK2=m -CONFIG_RADIO_SHARK=m -CONFIG_RADIO_SI470X=y -CONFIG_RADIO_SI4713=m -CONFIG_RADIO_TEA5764=m -# CONFIG_RADIO_TEF6862 is not set -CONFIG_RADIO_TERRATEC=m -CONFIG_RADIO_TRUST=m -CONFIG_RADIO_TYPHOON=m -CONFIG_RADIO_WL1273=m -CONFIG_RADIO_ZOLTRIX=m -CONFIG_RAID_ATTRS=m -# CONFIG_RANDOM32_SELFTEST is not set -# CONFIG_RAPIDIO is not set -CONFIG_RAS_CEC=y -CONFIG_RAW_DRIVER=y -# CONFIG_RBTREE_TEST is not set -CONFIG_RC_ATI_REMOTE=m -CONFIG_RC_CORE=m -CONFIG_RC_DECODERS=y -CONFIG_RC_DEVICES=y -CONFIG_RC_LOOPBACK=m -CONFIG_RC_MAP=m -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_RCU_EQS_DEBUG is not set -# CONFIG_RCU_EXPERT is not set -CONFIG_RCU_FANOUT=64 -CONFIG_RCU_FANOUT_LEAF=16 -CONFIG_RCU_FAST_NO_HZ=y -CONFIG_RCU_KTHREAD_PRIO=0 -CONFIG_RCU_NOCB_CPU_ALL=y -CONFIG_RCU_NOCB_CPU=y -# CONFIG_RCU_PERF_TEST is not set -CONFIG_RCU_TORTURE_TEST=m -# CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP is not set -CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 -# CONFIG_RCU_TORTURE_TEST_SLOW_INIT is not set -# CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RD_BZIP2=y -CONFIG_RD_GZIP=y -CONFIG_RD_LZ4=y -CONFIG_RD_LZMA=y -CONFIG_RD_LZO=y -CONFIG_RDMA_RXE=m -# CONFIG_RDS_DEBUG is not set -CONFIG_RDS=m -CONFIG_RDS_RDMA=m -CONFIG_RDS_TCP=m -CONFIG_RD_XZ=y -# CONFIG_READABLE_ASM is not set -CONFIG_REALTEK_AUTOPM=y -CONFIG_REALTEK_PHY=m -# CONFIG_REFCOUNT_FULL is not set -CONFIG_REGMAP_I2C=m -CONFIG_REGMAP=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR is not set -# CONFIG_REGULATOR_TPS65132 is not set -CONFIG_REGULATOR_VCTRL=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_FS=m -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_PROC_INFO=y -CONFIG_RELAY=y -# CONFIG_RELOCATABLE_TEST is not set -CONFIG_RELOCATABLE=y -CONFIG_REMOTEPROC=m -# CONFIG_RESET_TI_SYSCON is not set -# CONFIG_RFD_FTL is not set -CONFIG_RFKILL_GPIO=m -CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL=m -CONFIG_RING_BUFFER_BENCHMARK=m -# CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_RIO is not set -CONFIG_RMI4_CORE=m -CONFIG_RMI4_F03=y -CONFIG_RMI4_F11=y -CONFIG_RMI4_F12=y -CONFIG_RMI4_F30=y -CONFIG_RMI4_F34=y -# CONFIG_RMI4_F54 is not set -CONFIG_RMI4_F55=y -CONFIG_RMI4_I2C=m -CONFIG_RMI4_SMB=m -CONFIG_RMI4_SPI=m -CONFIG_ROCKER=m -CONFIG_ROCKETPORT=m -CONFIG_ROMFS_FS=m -CONFIG_ROSE=m -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPMSG_CHAR is not set -# CONFIG_RPMSG_QCOM_GLINK_RPM is not set -CONFIG_RPR0521=m -CONFIG_RSI_91X=m -CONFIG_RSI_DEBUGFS=y -CONFIG_RSI_SDIO=m -CONFIG_RSI_USB=m -CONFIG_RT2400PCI=m -CONFIG_RT2500PCI=m -CONFIG_RT2500USB=m -CONFIG_RT2800PCI=m -CONFIG_RT2800PCI_RT3290=y -CONFIG_RT2800PCI_RT33XX=y -CONFIG_RT2800PCI_RT35XX=y -CONFIG_RT2800PCI_RT53XX=y -CONFIG_RT2800USB=m -CONFIG_RT2800USB_RT33XX=y -CONFIG_RT2800USB_RT3573=y -CONFIG_RT2800USB_RT35XX=y -CONFIG_RT2800USB_RT53XX=y -CONFIG_RT2800USB_RT55XX=y -CONFIG_RT2800USB_UNKNOWN=y -# CONFIG_RT2X00_DEBUG is not set -CONFIG_RT2X00_LIB_DEBUGFS=y -CONFIG_RT2X00=m -CONFIG_RT61PCI=m -CONFIG_RT73USB=m -CONFIG_RTAS_FLASH=y -CONFIG_RTAS_PROC=y -CONFIG_RTC_CLASS=y -# CONFIG_RTC_DEBUG is not set -# CONFIG_RTC_DRV_AB3100 is not set -# CONFIG_RTC_DRV_ABB5ZES3 is not set -CONFIG_RTC_DRV_ABX80X=m -CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_BQ4802=m -CONFIG_RTC_DRV_CMOS=y -CONFIG_RTC_DRV_DS1286=m -# CONFIG_RTC_DRV_DS1302 is not set -CONFIG_RTC_DRV_DS1305=m -# CONFIG_RTC_DRV_DS1307_CENTURY is not set -CONFIG_RTC_DRV_DS1307_HWMON=y -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1343=m -CONFIG_RTC_DRV_DS1347=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1374_WDT=y -CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_DS1685_FAMILY=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_DS2404=m -# CONFIG_RTC_DRV_DS3232_HWMON is not set -CONFIG_RTC_DRV_DS3232=m -# CONFIG_RTC_DRV_EFI is not set -CONFIG_RTC_DRV_EM3027=m -# CONFIG_RTC_DRV_EP93XX is not set -CONFIG_RTC_DRV_FM3130=m -# CONFIG_RTC_DRV_FTRTC010 is not set -CONFIG_RTC_DRV_GENERIC=y -# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set -# CONFIG_RTC_DRV_HYM8563 is not set -CONFIG_RTC_DRV_ISL12022=m -# CONFIG_RTC_DRV_ISL12057 is not set -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_M41T80=m -CONFIG_RTC_DRV_M41T80_WDT=y -CONFIG_RTC_DRV_M41T93=m -CONFIG_RTC_DRV_M41T94=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -# CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_MAX6902=m -CONFIG_RTC_DRV_MAX6916=m -CONFIG_RTC_DRV_MCP795=m -# CONFIG_RTC_DRV_MOXART is not set -CONFIG_RTC_DRV_MSM6242=m -CONFIG_RTC_DRV_OPAL=m -CONFIG_RTC_DRV_PCF2123=m -CONFIG_RTC_DRV_PCF2127=m -CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_PCF85063=m -CONFIG_RTC_DRV_PCF8523=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_PM8XXX=m -CONFIG_RTC_DRV_R7301=m -CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RP5C01=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_RV3029C2=m -CONFIG_RTC_DRV_RV3029_HWMON=y -# CONFIG_RTC_DRV_RV8803 is not set -CONFIG_RTC_DRV_RX4581=m -# CONFIG_RTC_DRV_RX6110 is not set -CONFIG_RTC_DRV_RX8010=m -CONFIG_RTC_DRV_RX8025=m -CONFIG_RTC_DRV_RX8581=m -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_SA1100 is not set -# CONFIG_RTC_DRV_SNVS is not set -CONFIG_RTC_DRV_STK17TA8=m -# CONFIG_RTC_DRV_TEST is not set -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m -CONFIG_RTC_DRV_X1205=m -# CONFIG_RTC_DRV_ZYNQMP is not set -# CONFIG_RTC_DS1685_PROC_REGS is not set -CONFIG_RTC_DS1685_SYSFS_REGS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -CONFIG_RTC_HCTOSYS=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_INTF_DEV=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_SYSFS=y -# CONFIG_RTC is not set -# CONFIG_RTC_NVMEM is not set -# CONFIG_RTC_SYSTOHC is not set -# CONFIG_RT_GROUP_SCHED is not set -CONFIG_RTL8180=m -CONFIG_RTL8187=m -CONFIG_RTL8188EE=m -CONFIG_RTL8192CE=m -CONFIG_RTL8192CU=m -CONFIG_RTL8192DE=m -CONFIG_RTL8192EE=m -CONFIG_RTL8192E=m -CONFIG_RTL8192SE=m -# CONFIG_RTL8192U is not set -CONFIG_RTL8723AE=m -CONFIG_RTL8723BE=m -CONFIG_RTL8723BS=m -CONFIG_RTL8821AE=m -CONFIG_RTL8XXXU=m -CONFIG_RTL8XXXU_UNTESTED=y -CONFIG_RTL_CARDS=m -CONFIG_RTLLIB_CRYPTO_CCMP=m -CONFIG_RTLLIB_CRYPTO_TKIP=m -CONFIG_RTLLIB_CRYPTO_WEP=m -CONFIG_RTLLIB=m -# CONFIG_RTLWIFI_DEBUG is not set -CONFIG_RTLWIFI=m -# CONFIG_RTS5208 is not set -CONFIG_S2IO=m -# CONFIG_SAMPLES is not set -# CONFIG_SAMSUNG_USBPHY is not set -CONFIG_SATA_ACARD_AHCI=m -CONFIG_SATA_AHCI_PLATFORM=m -CONFIG_SATA_AHCI=y -# CONFIG_SATA_DWC is not set -# CONFIG_SATA_HIGHBANK is not set -CONFIG_SATA_INIC162X=m -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_SATA_PMP=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SIL24=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_SX4=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m -# CONFIG_SATA_ZPODD is not set -# CONFIG_SBC7240_WDT is not set -# CONFIG_SBC8360_WDT is not set -# CONFIG_SBC_EPX_C3_WATCHDOG is not set -CONFIG_SBP_TARGET=m -# CONFIG_SC1200_WDT is not set -# CONFIG_SC520_WDT is not set -CONFIG_SC92031=m -# CONFIG_SCA3000 is not set -CONFIG_SCANLOG=y -CONFIG_SCHED_AUTOGROUP=y -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHED_MC_PRIO is not set -CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_SCHED_SMT=y -# CONFIG_SCHED_STACK_END_CHECK is not set -CONFIG_SCHEDSTATS=y -CONFIG_SCHED_TRACER=y -CONFIG_SCOM_DEBUGFS=y -# CONFIG_SCR24X is not set -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_3W_SAS=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_ACARD=m -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_AHA1542 is not set -CONFIG_SCSI_AIC79XX=m -CONFIG_SCSI_AIC7XXX=m -# CONFIG_SCSI_AIC94XX is not set -CONFIG_SCSI_AM53C974=m -CONFIG_SCSI_ARCMSR=m -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_SCSI_BNX2X_FCOE=m -# CONFIG_SCSI_BUSLOGIC is not set -CONFIG_SCSI_CHELSIO_FCOE=m -CONFIG_SCSI_CONSTANTS=y -CONFIG_SCSI_CXGB3_ISCSI=m -CONFIG_SCSI_CXGB4_ISCSI=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DEBUG=m -CONFIG_SCSI_DH_ALUA=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH=y -CONFIG_SCSI_DMX3191D=m -# CONFIG_SCSI_DPT_I2O is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_EATA_PIO is not set -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_ESAS2R=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_FLASHPOINT=y -# CONFIG_SCSI_FUTURE_DOMAIN is not set -CONFIG_SCSI_GDTH=m -# CONFIG_SCSI_HISI_SAS is not set -CONFIG_SCSI_HPSA=m -CONFIG_SCSI_HPTIOP=m -CONFIG_SCSI_IBMVFC=m -# CONFIG_SCSI_IBMVFC_TRACE is not set -CONFIG_SCSI_IBMVSCSI=m -CONFIG_SCSI_IBMVSCSIS=m -# CONFIG_SCSI_IMM is not set -# CONFIG_SCSI_IN2000 is not set -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -# CONFIG_SCSI_IPS is not set -CONFIG_SCSI_ISCI=m -CONFIG_SCSI_ISCSI_ATTRS=m -# CONFIG_SCSI_IZIP_EPP16 is not set -# CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_LOGGING=y -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_SCSI_LPFC_DEBUG_FS is not set -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_MPT2SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -CONFIG_SCSI_MPT3SAS=m -CONFIG_SCSI_MPT3SAS_MAX_SGE=128 -# CONFIG_SCSI_MQ_DEFAULT is not set -# CONFIG_SCSI_MVSAS_DEBUG is not set -CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_TASKLET=y -CONFIG_SCSI_MVUMI=m -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_OSD_DEBUG is not set -CONFIG_SCSI_OSD_DPRINT_SENSE=1 -CONFIG_SCSI_OSD_INITIATOR=m -CONFIG_SCSI_OSD_ULD=m -CONFIG_SCSI_PM8001=m -CONFIG_SCSI_PMCRAID=m -# CONFIG_SCSI_PPA is not set -CONFIG_SCSI_PROC_FS=y -CONFIG_SCSI_QLA_FC=m -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SCAN_ASYNC=y -CONFIG_SCSI_SMARTPQI=m -# CONFIG_SCSI_SNIC_DEBUG_FS is not set -CONFIG_SCSI_SNIC=m -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_SRP=m -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -# CONFIG_SCSI_UFS_DWC_TC_PCI is not set -CONFIG_SCSI_UFSHCD=m -CONFIG_SCSI_UFSHCD_PCI=m -# CONFIG_SCSI_UFSHCD_PLATFORM is not set -CONFIG_SCSI_VIRTIO=m -CONFIG_SCSI_WD719X=m -CONFIG_SCSI=y -CONFIG_SCTP_COOKIE_HMAC_MD5=y -CONFIG_SCTP_COOKIE_HMAC_SHA1=y -# CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set -# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set -CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y -CONFIG_SDIO_UART=m -CONFIG_SECCOMP=y -CONFIG_SECONDARY_TRUSTED_KEYRING=y -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_SECURITY_APPARMOR is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_SECURITYFS=y -CONFIG_SECURITY_INFINIBAND=y -# CONFIG_SECURITY_LOADPIN is not set -CONFIG_SECURITY_NETWORK_XFRM=y -CONFIG_SECURITY_NETWORK=y -# CONFIG_SECURITY_PATH is not set -CONFIG_SECURITY_SELINUX_AVC_STATS=y -CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 -CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 -CONFIG_SECURITY_SELINUX_DEVELOP=y -CONFIG_SECURITY_SELINUX_DISABLE=y -# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set -CONFIG_SECURITY_SELINUX=y -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -CONFIG_SECURITY=y -CONFIG_SECURITY_YAMA=y -CONFIG_SENSORS_AD7314=m -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADC128D818=m -CONFIG_SENSORS_ADCXX=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM1275=m -CONFIG_SENSORS_ADM9240=m -# CONFIG_SENSORS_ADS1015 is not set -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_ADS7871=m -CONFIG_SENSORS_ADT7310=m -CONFIG_SENSORS_ADT7410=m -CONFIG_SENSORS_ADT7411=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_AMC6821=m -CONFIG_SENSORS_APDS990X=m -CONFIG_SENSORS_ASC7621=m -CONFIG_SENSORS_ASPEED=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_DS620=m -CONFIG_SENSORS_EMC1403=m -# CONFIG_SENSORS_EMC2103 is not set -CONFIG_SENSORS_EMC6W201=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_FTSTEUTATES=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_G762=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -# CONFIG_SENSORS_GPIO_FAN is not set -# CONFIG_SENSORS_HIH6130 is not set -# CONFIG_SENSORS_HMC5843_I2C is not set -# CONFIG_SENSORS_HMC5843 is not set -# CONFIG_SENSORS_HMC5843_SPI is not set -# CONFIG_SENSORS_I5K_AMB is not set -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IBMPOWERNV=y -# CONFIG_SENSORS_IIO_HWMON is not set -CONFIG_SENSORS_INA209=m -CONFIG_SENSORS_INA2XX=m -CONFIG_SENSORS_INA3221=m -# CONFIG_SENSORS_IR35221 is not set -# CONFIG_SENSORS_ISL29018 is not set -# CONFIG_SENSORS_ISL29028 is not set -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m -CONFIG_SENSORS_LINEAGE=m -CONFIG_SENSORS_LIS3_I2C=m -CONFIG_SENSORS_LIS3LV02D=m -# CONFIG_SENSORS_LIS3_SPI is not set -CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM70=m -CONFIG_SENSORS_LM73=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LM95234=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_LM95245=m -CONFIG_SENSORS_LTC2945=m -CONFIG_SENSORS_LTC2978=m -CONFIG_SENSORS_LTC2990=m -CONFIG_SENSORS_LTC3815=m -CONFIG_SENSORS_LTC4151=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4222=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LTC4260=m -CONFIG_SENSORS_LTC4261=m -CONFIG_SENSORS_MAX1111=m -CONFIG_SENSORS_MAX16064=m -CONFIG_SENSORS_MAX16065=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX1668=m -CONFIG_SENSORS_MAX197=m -CONFIG_SENSORS_MAX20751=m -CONFIG_SENSORS_MAX31722=m -CONFIG_SENSORS_MAX31790=m -CONFIG_SENSORS_MAX34440=m -CONFIG_SENSORS_MAX6639=m -CONFIG_SENSORS_MAX6642=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_MAX6697=m -CONFIG_SENSORS_MAX8688=m -CONFIG_SENSORS_MCP3021=m -CONFIG_SENSORS_NCT6683=m -CONFIG_SENSORS_NCT6775=m -CONFIG_SENSORS_NCT7802=m -CONFIG_SENSORS_NCT7904=m -CONFIG_SENSORS_NTC_THERMISTOR=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_PMBUS=m -CONFIG_SENSORS_POWR1220=m -CONFIG_SENSORS_PWM_FAN=m -CONFIG_SENSORS_SCH5627=m -CONFIG_SENSORS_SCH5636=m -CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SHT21=m -CONFIG_SENSORS_SHT3x=m -CONFIG_SENSORS_SHTC1=m -CONFIG_SENSORS_SIS5595=m -# CONFIG_SENSORS_SMM665 is not set -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47M1=m -# CONFIG_SENSORS_STTS751 is not set -CONFIG_SENSORS_TC654=m -CONFIG_SENSORS_TC74=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP102=m -CONFIG_SENSORS_TMP103=m -CONFIG_SENSORS_TMP108=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_TPS40422=m -CONFIG_SENSORS_TSL2550=m -# CONFIG_SENSORS_TSL2563 is not set -CONFIG_SENSORS_UCD9000=m -CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -# CONFIG_SENSORS_W83795_FANCTRL is not set -CONFIG_SENSORS_W83795=m -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -# CONFIG_SENSORS_XGENE is not set -CONFIG_SENSORS_ZL6100=m -# CONFIG_SERIAL_8250_ASPEED_VUART is not set -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_CS=m -# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set -# CONFIG_SERIAL_8250_DETECT_IRQ is not set -CONFIG_SERIAL_8250_DW=y -CONFIG_SERIAL_8250_EXAR=m -CONFIG_SERIAL_8250_EXTENDED=y -# CONFIG_SERIAL_8250_FINTEK is not set -# CONFIG_SERIAL_8250_INGENIC is not set -# CONFIG_SERIAL_8250 is not set -CONFIG_SERIAL_8250_MANY_PORTS=y -# CONFIG_SERIAL_8250_MID is not set -CONFIG_SERIAL_8250_MOXA=m -CONFIG_SERIAL_8250_NR_UARTS=32 -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_RT288X=y -CONFIG_SERIAL_8250_RUNTIME_UARTS=32 -CONFIG_SERIAL_8250_SHARE_IRQ=y -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -CONFIG_SERIAL_ARC=m -CONFIG_SERIAL_ARC_NR_PORTS=1 -# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_SERIAL_CORE=m -# CONFIG_SERIAL_CPM is not set -CONFIG_SERIAL_DEV_BUS=y -CONFIG_SERIAL_DEV_CTRL_TTYPORT=y -# CONFIG_SERIAL_FSL_LPUART is not set -CONFIG_SERIAL_ICOM=m -# CONFIG_SERIAL_IFX6X60 is not set -CONFIG_SERIAL_JSM=m -# CONFIG_SERIAL_KGDB_NMI is not set -# CONFIG_SERIAL_MAX3100 is not set -# CONFIG_SERIAL_MAX310X is not set -CONFIG_SERIAL_NONSTANDARD=y -CONFIG_SERIAL_OF_PLATFORM=m -# CONFIG_SERIAL_PCH_UART is not set -# CONFIG_SERIAL_QE is not set -# CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_SCCNXP is not set -# CONFIG_SERIAL_ST_ASC is not set -# CONFIG_SERIAL_TIMBERDALE is not set -# CONFIG_SERIAL_UARTLITE is not set -# CONFIG_SERIAL_XILINX_PS_UART is not set -CONFIG_SERIO_ALTERA_PS2=m -# CONFIG_SERIO_APBPS2 is not set -CONFIG_SERIO_ARC_PS2=m -# CONFIG_SERIO_CT82C710 is not set -CONFIG_SERIO_I8042=y -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_OLPC_APSP is not set -# CONFIG_SERIO_PARKBD is not set -# CONFIG_SERIO_PCIPS2 is not set -# CONFIG_SERIO_PS2MULT is not set -CONFIG_SERIO_RAW=m -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_XILINX_XPS_PS2 is not set -CONFIG_SERIO=y -CONFIG_SFC_FALCON=m -CONFIG_SFC_FALCON_MTD=y -# CONFIG_SFC is not set -# CONFIG_SGI_IOC4 is not set -CONFIG_SGI_PARTITION=y -CONFIG_SH_ETH=m -# CONFIG_SI1145 is not set -# CONFIG_SI7005 is not set -# CONFIG_SI7020 is not set -# CONFIG_SIGMA is not set -CONFIG_SIGMATEL_FIR=m -CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_GPIO=y -# CONFIG_SIMPLE_PM_BUS is not set -CONFIG_SIS190=m -CONFIG_SIS900=m -# CONFIG_SKFP is not set -# CONFIG_SKGE_DEBUG is not set -CONFIG_SKGE_GENESIS=y -CONFIG_SKGE=m -# CONFIG_SKY2_DEBUG is not set -CONFIG_SKY2=m -CONFIG_SLAB_FREELIST_RANDOM=y -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLICOSS is not set -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP=m -# CONFIG_SLIP_MODE_SLIP6 is not set -CONFIG_SLIP_SMART=y -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -CONFIG_SLUB=y -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_SMC_IRCC_FIR=m -# CONFIG_SMC is not set -# CONFIG_SM_FTL is not set -CONFIG_SMP=y -CONFIG_SMSC911X=m -CONFIG_SMSC9420=m -CONFIG_SMSC_PHY=m -CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMS_SDIO_DRV=m -# CONFIG_SMS_SIANO_DEBUGFS is not set -CONFIG_SMS_SIANO_MDTV=m -CONFIG_SMS_SIANO_RC=y -CONFIG_SMS_USB_DRV=m -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 -CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALI5451=m -CONFIG_SND_ALOOP=m -CONFIG_SND_ALS300=m -CONFIG_SND_ALS4000=m -CONFIG_SND_ASIHPI=m -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -# CONFIG_SND_ATMEL_SOC is not set -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -# CONFIG_SND_AUDIO_GRAPH_CARD is not set -# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set -# CONFIG_SND_AW2 is not set -CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set -CONFIG_SND_BEBOB=m -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_COMPRESS_OFFLOAD=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CS5530=m -CONFIG_SND_CS5535AUDIO=m -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_DARLA24=m -# CONFIG_SND_DEBUG is not set -# CONFIG_SND_DEBUG_VERBOSE is not set -CONFIG_SND_DESIGNWARE_I2S=m -CONFIG_SND_DESIGNWARE_PCM=y -CONFIG_SND_DICE=m -CONFIG_SND_DMAENGINE_PCM=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_ECHO3G=m -# CONFIG_SND_EDMA_SOC is not set -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968_INPUT=y -CONFIG_SND_ES1968=m -CONFIG_SND_ES1968_RADIO=y -CONFIG_SND_FIREFACE=m -CONFIG_SND_FIREWIRE_DIGI00X=m -CONFIG_SND_FIREWIRE_MOTU=m -CONFIG_SND_FIREWIRE_TASCAM=m -CONFIG_SND_FIREWIRE=y -CONFIG_SND_FIREWORKS=m -CONFIG_SND_FM801=m -CONFIG_SND_FM801_TEA575X_BOOL=y -CONFIG_SND_GINA20=m -CONFIG_SND_GINA24=m -CONFIG_SND_HDA_CODEC_ANALOG=m -CONFIG_SND_HDA_CODEC_CA0110=m -CONFIG_SND_HDA_CODEC_CA0132_DSP=y -CONFIG_SND_HDA_CODEC_CA0132=m -CONFIG_SND_HDA_CODEC_CIRRUS=m -CONFIG_SND_HDA_CODEC_CMEDIA=m -CONFIG_SND_HDA_CODEC_CONEXANT=m -CONFIG_SND_HDA_CODEC_HDMI=m -CONFIG_SND_HDA_CODEC_REALTEK=m -CONFIG_SND_HDA_CODEC_SI3054=m -CONFIG_SND_HDA_CODEC_SIGMATEL=m -CONFIG_SND_HDA_CODEC_VIA=m -CONFIG_SND_HDA_GENERIC=m -CONFIG_SND_HDA_HWDEP=y -CONFIG_SND_HDA_I915=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=0 -CONFIG_SND_HDA_INPUT_BEEP=y -# CONFIG_SND_HDA_INTEL is not set -CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 -CONFIG_SND_HDA_POWER_SAVE=y -CONFIG_SND_HDA_PREALLOC_SIZE=4096 -CONFIG_SND_HDA_RECONFIG=y -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_HRTIMER=m -CONFIG_SND_I2S_HI6210_I2S=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGO=m -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -CONFIG_SND_ISIGHT=m -CONFIG_SND_JACK=y -CONFIG_SND_KORG1212=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_LOLA=m -CONFIG_SND_LX6464ES=m -CONFIG_SND=m -CONFIG_SND_MAESTRO3_INPUT=y -CONFIG_SND_MAESTRO3=m -CONFIG_SND_MAX_CARDS=32 -CONFIG_SND_MIA=m -CONFIG_SND_MIXART=m -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_MONA=m -CONFIG_SND_MPU401=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_NM256=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_OXFW=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_PCI=y -# CONFIG_SND_PCMCIA is not set -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_PCSP=m -CONFIG_SND_PCXHR=m -CONFIG_SND_PORTMAN2X4=m -CONFIG_SND_PPC=y -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME9652=m -CONFIG_SND_RME96=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQUENCER_OSS=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_SIMPLE_CARD=m -CONFIG_SND_SIMPLE_CARD_UTILS=m -CONFIG_SND_SIMPLE_SCU_CARD=m -CONFIG_SND_SIS7019=m -# CONFIG_SND_SOC_ADAU1701 is not set -CONFIG_SND_SOC_ADAU1761_I2C=m -CONFIG_SND_SOC_ADAU1761_SPI=m -# CONFIG_SND_SOC_ADAU7002 is not set -# CONFIG_SND_SOC_AK4104 is not set -# CONFIG_SND_SOC_AK4554 is not set -# CONFIG_SND_SOC_AK4613 is not set -# CONFIG_SND_SOC_AK4642 is not set -# CONFIG_SND_SOC_AK5386 is not set -# CONFIG_SND_SOC_ALC5623 is not set -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_AMD_ACP=m -# CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631 is not set -# CONFIG_SND_SOC_BT_SCO is not set -# CONFIG_SND_SOC_CS35L32 is not set -# CONFIG_SND_SOC_CS35L33 is not set -CONFIG_SND_SOC_CS35L34=m -CONFIG_SND_SOC_CS35L35=m -# CONFIG_SND_SOC_CS4265 is not set -# CONFIG_SND_SOC_CS4270 is not set -# CONFIG_SND_SOC_CS4271_I2C is not set -# CONFIG_SND_SOC_CS4271 is not set -# CONFIG_SND_SOC_CS4271_SPI is not set -CONFIG_SND_SOC_CS42L42=m -# CONFIG_SND_SOC_CS42L51_I2C is not set -# CONFIG_SND_SOC_CS42L52 is not set -# CONFIG_SND_SOC_CS42L56 is not set -# CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42XX8_I2C is not set -# CONFIG_SND_SOC_CS4349 is not set -# CONFIG_SND_SOC_CS53L30 is not set -CONFIG_SND_SOC_DIO2125=m -CONFIG_SND_SOC_DMIC=m -CONFIG_SND_SOC_ES7134=m -# CONFIG_SND_SOC_ES8316 is not set -# CONFIG_SND_SOC_ES8328 is not set -# CONFIG_SND_SOC_FSL_ASOC_CARD is not set -# CONFIG_SND_SOC_FSL_ASRC is not set -# CONFIG_SND_SOC_FSL_ESAI is not set -# CONFIG_SND_SOC_FSL_SAI is not set -# CONFIG_SND_SOC_FSL_SPDIF is not set -# CONFIG_SND_SOC_FSL_SSI is not set -CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y -# CONFIG_SND_SOC_GTM601 is not set -CONFIG_SND_SOC_HDAC_HDMI=m -CONFIG_SND_SOC_HDMI_CODEC=m -# CONFIG_SND_SOC_IMG is not set -# CONFIG_SND_SOC_IMX_AUDMUX is not set -# CONFIG_SND_SOC_IMX_ES8328 is not set -# CONFIG_SND_SOC_INNO_RK3036 is not set -# CONFIG_SND_SOC is not set -# CONFIG_SND_SOC_MAX98504 is not set -# CONFIG_SND_SOC_MAX9860 is not set -CONFIG_SND_SOC_MAX98927=m -# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set -# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set -# CONFIG_SND_SOC_NAU8540 is not set -# CONFIG_SND_SOC_NAU8810 is not set -CONFIG_SND_SOC_NAU8824=m -# CONFIG_SND_SOC_PCM1681 is not set -# CONFIG_SND_SOC_PCM179X_I2C is not set -# CONFIG_SND_SOC_PCM179X is not set -# CONFIG_SND_SOC_PCM179X_SPI is not set -# CONFIG_SND_SOC_PCM3168A_I2C is not set -# CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set -# CONFIG_SND_SOC_PCM512x_SPI is not set -# CONFIG_SND_SOC_RT5616 is not set -# CONFIG_SND_SOC_RT5631 is not set -# CONFIG_SND_SOC_SGTL5000 is not set -# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set -CONFIG_SND_SOC_SPDIF=m -# CONFIG_SND_SOC_SSM2602_I2C is not set -# CONFIG_SND_SOC_SSM2602_SPI is not set -# CONFIG_SND_SOC_SSM4567 is not set -# CONFIG_SND_SOC_STA32X is not set -# CONFIG_SND_SOC_STA350 is not set -# CONFIG_SND_SOC_STI_SAS is not set -# CONFIG_SND_SOC_TAS2552 is not set -# CONFIG_SND_SOC_TAS5086 is not set -# CONFIG_SND_SOC_TAS571X is not set -# CONFIG_SND_SOC_TAS5720 is not set -# CONFIG_SND_SOC_TFA9879 is not set -# CONFIG_SND_SOC_TLV320AIC23_I2C is not set -# CONFIG_SND_SOC_TLV320AIC23_SPI is not set -# CONFIG_SND_SOC_TLV320AIC31XX is not set -# CONFIG_SND_SOC_TLV320AIC3X is not set -# CONFIG_SND_SOC_TPA6130A2 is not set -# CONFIG_SND_SOC_TS3A227E is not set -# CONFIG_SND_SOC_WM8510 is not set -# CONFIG_SND_SOC_WM8523 is not set -# CONFIG_SND_SOC_WM8580 is not set -# CONFIG_SND_SOC_WM8711 is not set -# CONFIG_SND_SOC_WM8728 is not set -# CONFIG_SND_SOC_WM8731 is not set -# CONFIG_SND_SOC_WM8737 is not set -# CONFIG_SND_SOC_WM8741 is not set -# CONFIG_SND_SOC_WM8750 is not set -# CONFIG_SND_SOC_WM8753 is not set -# CONFIG_SND_SOC_WM8770 is not set -# CONFIG_SND_SOC_WM8776 is not set -# CONFIG_SND_SOC_WM8804_I2C is not set -# CONFIG_SND_SOC_WM8804 is not set -# CONFIG_SND_SOC_WM8804_SPI is not set -# CONFIG_SND_SOC_WM8903 is not set -# CONFIG_SND_SOC_WM8960 is not set -# CONFIG_SND_SOC_WM8962 is not set -# CONFIG_SND_SOC_WM8974 is not set -# CONFIG_SND_SOC_WM8978 is not set -# CONFIG_SND_SOC_WM8985 is not set -# CONFIG_SND_SOC_XTFPGA_I2S is not set -# CONFIG_SND_SOC_ZX_AUD96P22 is not set -CONFIG_SND_SONICVIBES=m -# CONFIG_SND_SPI is not set -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_TRIDENT=m -CONFIG_SND_USB_6FIRE=m -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_HIFACE=m -CONFIG_SND_USB_PODHD=m -CONFIG_SND_USB_POD=m -CONFIG_SND_USB_TONEPORT=m -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_US122L=m -CONFIG_SND_USB_USX2Y=m -CONFIG_SND_USB_VARIAX=m -CONFIG_SND_USB=y -# CONFIG_SND_VERBOSE_PRINTK is not set -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -CONFIG_SND_VIRMIDI=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m -# CONFIG_SOC_CAMERA is not set -# CONFIG_SOC_TI is not set -# CONFIG_SOC_ZTE is not set -CONFIG_SOFTLOCKUP_DETECTOR=y -CONFIG_SOFT_WATCHDOG=m -CONFIG_SOLARIS_X86_PARTITION=y -# CONFIG_SOLO6X10 is not set -CONFIG_SONY_FF=y -# CONFIG_SONYPI is not set -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -# CONFIG_SOUND_PRIME is not set -CONFIG_SPAPR_TCE_IOMMU=y -CONFIG_SPARSE_IRQ=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_SPARSE_RCU_POINTER=y -# CONFIG_SPEAKUP is not set -# CONFIG_SPI_ALTERA is not set -# CONFIG_SPI_AXI_SPI_ENGINE is not set -# CONFIG_SPI_BITBANG is not set -# CONFIG_SPI_BUTTERFLY is not set -# CONFIG_SPI_DEBUG is not set -# CONFIG_SPI_DESIGNWARE is not set -CONFIG_SPI_FSL_LPSPI=m -# CONFIG_SPI_FSL_SPI is not set -# CONFIG_SPI_GPIO is not set -# CONFIG_SPI is not set -# CONFIG_SPI_LM70_LLP is not set -# CONFIG_SPI_LOOPBACK_TEST is not set -# CONFIG_SPI_OC_TINY is not set -# CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_ROCKCHIP is not set -# CONFIG_SPI_SC18IS602 is not set -# CONFIG_SPI_SLAVE is not set -# CONFIG_SPI_SPIDEV is not set -# CONFIG_SPI_TLE62X0 is not set -# CONFIG_SPI_TOPCLIFF_PCH is not set -# CONFIG_SPI_XCOMM is not set -# CONFIG_SPI_XILINX is not set -# CONFIG_SPMI is not set -# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set -# CONFIG_SQUASHFS_EMBEDDED is not set -CONFIG_SQUASHFS_LZ4=y -CONFIG_SQUASHFS_LZO=y -CONFIG_SQUASHFS=m -CONFIG_SQUASHFS_XATTR=y -CONFIG_SQUASHFS_XZ=y -CONFIG_SQUASHFS_ZLIB=y -# CONFIG_SRAM is not set -# CONFIG_SRF04 is not set -# CONFIG_SRF08 is not set -# CONFIG_SSB_DEBUG is not set -CONFIG_SSB_DRIVER_GPIO=y -CONFIG_SSB_DRIVER_PCICORE=y -CONFIG_SSB_HOST_SOC=y -CONFIG_SSB=m -CONFIG_SSB_PCIHOST=y -CONFIG_SSB_PCMCIAHOST=y -CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_SILENT is not set -# CONFIG_SSFDC is not set -CONFIG_STACK_TRACER=y -CONFIG_STACK_VALIDATION=y -# CONFIG_STAGING_BOARD is not set -CONFIG_STAGING_MEDIA=y -CONFIG_STAGING=y -CONFIG_STANDALONE=y -# CONFIG_STATIC_KEYS_SELFTEST is not set -# CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_STE10XP=m -# CONFIG_STE_MODEM_RPROC is not set -CONFIG_STK3310=m -# CONFIG_STK8312 is not set -# CONFIG_STK8BA50 is not set -# CONFIG_STM_DUMMY is not set -# CONFIG_STM is not set -CONFIG_STMMAC_ETH=m -# CONFIG_STMMAC_PCI is not set -# CONFIG_STMMAC_PLATFORM is not set -# CONFIG_STM_SOURCE_CONSOLE is not set -CONFIG_STRICT_DEVMEM=y -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_STRIP is not set -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_SUNGEM=m -CONFIG_SUN_PARTITION=y -CONFIG_SUNRPC_DEBUG=y -CONFIG_SUNRPC_GSS=m -CONFIG_SUNRPC=m -CONFIG_SUNRPC_XPRT_RDMA=m -# CONFIG_SURFACE_3_BUTTON is not set -CONFIG_SUSPEND_FREEZER=y -CONFIG_SUSPEND=y -CONFIG_SWAP=y -# CONFIG_SWIOTLB is not set -# CONFIG_SW_SYNC is not set -# CONFIG_SX9500 is not set -CONFIG_SYNC_FILE=y -# CONFIG_SYNCLINK_CS is not set -CONFIG_SYNCLINK_GT=m -CONFIG_SYNCLINK=m -CONFIG_SYNCLINKMP=m -CONFIG_SYN_COOKIES=y -# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set -# CONFIG_SYSCON_REBOOT_MODE is not set -CONFIG_SYSCTL=y -# CONFIG_SYSFS_DEPRECATED is not set -# CONFIG_SYSFS_DEPRECATED_V2 is not set -CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" -CONFIG_SYSTEM_BLACKLIST_KEYRING=y -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SYSTEMPORT is not set -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSV68_PARTITION is not set -CONFIG_SYSV_FS=m -CONFIG_SYSVIPC=y -# CONFIG_T5403 is not set -CONFIG_TABLET_SERIAL_WACOM4=m -CONFIG_TABLET_USB_ACECAD=m -CONFIG_TABLET_USB_AIPTEK=m -CONFIG_TABLET_USB_GTCO=m -CONFIG_TABLET_USB_HANWANG=m -CONFIG_TABLET_USB_KBTAB=m -CONFIG_TABLET_USB_PEGASUS=m -CONFIG_TARGET_CORE=m -CONFIG_TASK_DELAY_ACCT=y -CONFIG_TASK_IO_ACCOUNTING=y -CONFIG_TASKS_RCU=y -CONFIG_TASKSTATS=y -CONFIG_TASK_XACCT=y -CONFIG_TCG_ATMEL=m -CONFIG_TCG_CRB=m -# CONFIG_TCG_INFINEON is not set -CONFIG_TCG_NSC=m -# CONFIG_TCG_TIS_I2C_ATMEL is not set -# CONFIG_TCG_TIS_I2C_INFINEON is not set -# CONFIG_TCG_TIS_I2C_NUVOTON is not set -CONFIG_TCG_TIS=m -# CONFIG_TCG_TIS_SPI is not set -# CONFIG_TCG_TIS_ST33ZP24_I2C is not set -# CONFIG_TCG_TIS_ST33ZP24 is not set -# CONFIG_TCG_TIS_ST33ZP24_SPI is not set -# CONFIG_TCG_TPM is not set -# CONFIG_TCG_VTPM_PROXY is not set -# CONFIG_TCG_XEN is not set -CONFIG_TCM_FC=m -CONFIG_TCM_FILEIO=m -CONFIG_TCM_IBLOCK=m -CONFIG_TCM_PSCSI=m -# CONFIG_TCM_QLA2XXX_DEBUG is not set -CONFIG_TCM_QLA2XXX=m -CONFIG_TCM_USER2=m -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BBR=m -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CDG=m -CONFIG_TCP_CONG_CUBIC=y -CONFIG_TCP_CONG_DCTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_NV=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_MD5SIG=y -# CONFIG_TCS3414 is not set -# CONFIG_TCS3472 is not set -# CONFIG_TEE is not set -CONFIG_TEHUTI=m -CONFIG_TEKRAM_DONGLE=m -CONFIG_TELCLOCK=m -CONFIG_TERANETICS_PHY=m -CONFIG_TEST_ASYNC_DRIVER_PROBE=m -# CONFIG_TEST_BITMAP is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_HASH is not set -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_TEST_KMOD is not set -CONFIG_TEST_KSTRTOX=y -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_PARMAN is not set -# CONFIG_TEST_POWER is not set -# CONFIG_TEST_PRINTF is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_SORT is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_TEST_SYSCTL is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_UUID is not set -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -# CONFIG_THERMAL_EMULATION is not set -# CONFIG_THERMAL_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_FAIR_SHARE=y -# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set -CONFIG_THERMAL_GOV_STEP_WISE=y -# CONFIG_THERMAL_GOV_USER_SPACE is not set -CONFIG_THERMAL_HWMON=y -# CONFIG_THERMAL_OF is not set -# CONFIG_THERMAL_WRITABLE_TRIPS is not set -CONFIG_THERMAL=y -CONFIG_THRUSTMASTER_FF=y -# CONFIG_THUNDERBOLT is not set -# CONFIG_TI_ADC081C is not set -# CONFIG_TI_ADC0832 is not set -# CONFIG_TI_ADC084S021 is not set -# CONFIG_TI_ADC108S102 is not set -# CONFIG_TI_ADC12138 is not set -# CONFIG_TI_ADC128S052 is not set -# CONFIG_TI_ADC161S626 is not set -CONFIG_TI_ADS1015=m -# CONFIG_TI_ADS7950 is not set -# CONFIG_TI_ADS8688 is not set -# CONFIG_TI_CPSW_ALE is not set -# CONFIG_TI_DAC7512 is not set -CONFIG_TIFM_7XX1=m -CONFIG_TIFM_CORE=m -CONFIG_TIGON3_HWMON=y -CONFIG_TIGON3=m -# CONFIG_TIMB_DMA is not set -# CONFIG_TIMER_STATS is not set -CONFIG_TIPC=m -# CONFIG_TIPC_MEDIA_IB is not set -CONFIG_TIPC_MEDIA_UDP=y -CONFIG_TI_SCI_PROTOCOL=m -# CONFIG_TI_ST is not set -# CONFIG_TI_TLC4541 is not set -CONFIG_TLAN=m -CONFIG_TLS=m -# CONFIG_TMD_HERMES is not set -# CONFIG_TMP006 is not set -# CONFIG_TMP007 is not set -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -CONFIG_TMPFS=y -CONFIG_TOIM3232_DONGLE=m -# CONFIG_TOSHIBA_FIR is not set -# CONFIG_TOUCHSCREEN_AD7877 is not set -CONFIG_TOUCHSCREEN_AD7879_I2C=m -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# CONFIG_TOUCHSCREEN_AR1021_I2C is not set -CONFIG_TOUCHSCREEN_ATMEL_MXT=m -# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set -# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set -CONFIG_TOUCHSCREEN_DYNAPRO=m -CONFIG_TOUCHSCREEN_EDT_FT5X06=m -CONFIG_TOUCHSCREEN_EETI=m -CONFIG_TOUCHSCREEN_EGALAX=m -CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m -# CONFIG_TOUCHSCREEN_EKTF2127 is not set -CONFIG_TOUCHSCREEN_ELAN=m -CONFIG_TOUCHSCREEN_ELO=m -# CONFIG_TOUCHSCREEN_FT6236 is not set -CONFIG_TOUCHSCREEN_FUJITSU=m -# CONFIG_TOUCHSCREEN_GOODIX is not set -CONFIG_TOUCHSCREEN_GUNZE=m -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -CONFIG_TOUCHSCREEN_ILI210X=m -# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set -CONFIG_TOUCHSCREEN_INEXIO=m -# CONFIG_TOUCHSCREEN_MAX11801 is not set -CONFIG_TOUCHSCREEN_MCS5000=m -# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set -CONFIG_TOUCHSCREEN_MK712=m -CONFIG_TOUCHSCREEN_MMS114=m -CONFIG_TOUCHSCREEN_MTOUCH=m -CONFIG_TOUCHSCREEN_PENMOUNT=m -CONFIG_TOUCHSCREEN_PIXCIR=m -CONFIG_TOUCHSCREEN_RM_TS=m -# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -CONFIG_TOUCHSCREEN_SILEAD=m -CONFIG_TOUCHSCREEN_SIS_I2C=m -CONFIG_TOUCHSCREEN_ST1232=m -# CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SUR40 is not set -# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set -# CONFIG_TOUCHSCREEN_SX8654 is not set -CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m -CONFIG_TOUCHSCREEN_TOUCHIT213=m -CONFIG_TOUCHSCREEN_TOUCHRIGHT=m -CONFIG_TOUCHSCREEN_TOUCHWIN=m -# CONFIG_TOUCHSCREEN_TPS6507X is not set -CONFIG_TOUCHSCREEN_TS4800=m -# CONFIG_TOUCHSCREEN_TSC2004 is not set -# CONFIG_TOUCHSCREEN_TSC2005 is not set -CONFIG_TOUCHSCREEN_TSC2007_IIO=y -CONFIG_TOUCHSCREEN_TSC2007=m -CONFIG_TOUCHSCREEN_TSC_SERIO=m -CONFIG_TOUCHSCREEN_UCB1400=m -CONFIG_TOUCHSCREEN_USB_COMPOSITE=m -CONFIG_TOUCHSCREEN_USB_E2I=y -CONFIG_TOUCHSCREEN_W90X900=m -CONFIG_TOUCHSCREEN_WACOM_I2C=m -CONFIG_TOUCHSCREEN_WACOM_W8001=m -# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -# CONFIG_TOUCHSCREEN_WM97XX is not set -CONFIG_TOUCHSCREEN_ZET6223=m -CONFIG_TOUCHSCREEN_ZFORCE=m -# CONFIG_TPL0102 is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS65010 is not set -# CONFIG_TPS6507X is not set -# CONFIG_TRACE_BRANCH_PROFILING is not set -# CONFIG_TRACE_ENUM_MAP_FILE is not set -CONFIG_TRACE_EVAL_MAP_FILE=y -# CONFIG_TRACEPOINT_BENCHMARK is not set -# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set -CONFIG_TRACER_SNAPSHOT=y -# CONFIG_TRACE_SINK is not set -# CONFIG_TRACING_EVENTS_GPIO is not set -CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y -CONFIG_TRANSPARENT_HUGEPAGE=y -# CONFIG_TR is not set -CONFIG_TRUSTED_KEYS=m -# CONFIG_TS4800_IRQ is not set -# CONFIG_TS4800_WATCHDOG is not set -# CONFIG_TSL2583 is not set -# CONFIG_TSL2x7x is not set -# CONFIG_TSL4531 is not set -# CONFIG_TSYS01 is not set -# CONFIG_TSYS02D is not set -CONFIG_TULIP=m -CONFIG_TULIP_MMIO=y -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_TUN=m -# CONFIG_TUN_VNET_CROSS_LE is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_TWL6040_CORE is not set -CONFIG_TYPEC_FUSB302=m -CONFIG_TYPEC_TCPCI=m -CONFIG_TYPEC_TCPM=m -CONFIG_TYPEC_UCSI=m -CONFIG_TYPEC_WCOVE=m -CONFIG_TYPHOON=m -CONFIG_UBIFS_ATIME_SUPPORT=y -# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set -CONFIG_UBIFS_FS_ENCRYPTION=y -CONFIG_UBIFS_FS=m -CONFIG_UBIFS_FS_SECURITY=y -# CONFIG_UBSAN_ALIGNMENT is not set -# CONFIG_UBSAN is not set -# CONFIG_UBSAN_SANITIZE_ALL is not set -# CONFIG_UCB1400_CORE is not set -# CONFIG_UCC_GETH is not set -CONFIG_UCSI_ACPI=m -CONFIG_UCSI=m -# CONFIG_UDBG_RTAS_CONSOLE is not set -CONFIG_UDF_FS=m -# CONFIG_UEVENT_HELPER is not set -# CONFIG_UFS_DEBUG is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -CONFIG_UHID=m -CONFIG_UIO_AEC=m -CONFIG_UIO_CIF=m -# CONFIG_UIO_DMEM_GENIRQ is not set -CONFIG_UIO_HV_GENERIC=m -CONFIG_UIO=m -# CONFIG_UIO_MF624 is not set -# CONFIG_UIO_NETX is not set -CONFIG_UIO_PCI_GENERIC=m -# CONFIG_UIO_PDRV_GENIRQ is not set -# CONFIG_UIO_PDRV is not set -# CONFIG_UIO_PRUSS is not set -CONFIG_UIO_SERCOS3=m -CONFIG_ULI526X=m -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_UNISYSSPAR is not set -CONFIG_UNIX98_PTYS=y -CONFIG_UNIX_DIAG=m -CONFIG_UNIXWARE_DISKLABEL=y -CONFIG_UNIX=y -CONFIG_UNUSED_SYMBOLS=y -CONFIG_UPROBE_EVENTS=y -# CONFIG_US5182D is not set -CONFIG_USB_ACM=m -CONFIG_USB_ADUTUX=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -CONFIG_USB_APPLEDISPLAY=m -CONFIG_USB_ARMLINUX=y -CONFIG_USB_ATMEL=m -CONFIG_USB_ATM=m -CONFIG_USB_BELKIN=y -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_CATC=m -CONFIG_USB_CDC_PHONET=m -CONFIG_USB_CHAOSKEY=m -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_CHIPIDEA_ULPI is not set -# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set -CONFIG_USB_CXACRU=m -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_DEBUG is not set -CONFIG_USB_DEFAULT_PERSIST=y -CONFIG_USB_DSBR=m -# CONFIG_USB_DWC2 is not set -# CONFIG_USB_DWC3 is not set -# CONFIG_USB_DWC3_OF_SIMPLE is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -CONFIG_USB_EHCI_HCD_PPC_OF=y -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_MV is not set -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -# CONFIG_USB_EHSET_TEST_FIXTURE is not set -CONFIG_USB_EMI26=m -CONFIG_USB_EMI62=m -CONFIG_USB_EPSON2888=y -CONFIG_USB_EZUSB_FX2=m -CONFIG_USB_EZUSB=y -# CONFIG_USB_FHCI_HCD is not set -# CONFIG_USB_FOTG210_HCD is not set -CONFIG_USB_FTDI_ELAN=m -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_GADGET is not set -CONFIG_USB_GL860=m -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_USB_GR_UDC is not set -CONFIG_USB_G_SERIAL=m -CONFIG_USB_GSPCA_BENQ=m -CONFIG_USB_GSPCA_CONEX=m -CONFIG_USB_GSPCA_CPIA1=m -CONFIG_USB_GSPCA_DTCS033=m -CONFIG_USB_GSPCA_ETOMS=m -CONFIG_USB_GSPCA_FINEPIX=m -CONFIG_USB_GSPCA_JEILINJ=m -CONFIG_USB_GSPCA_JL2005BCD=m -CONFIG_USB_GSPCA_KINECT=m -CONFIG_USB_GSPCA_KONICA=m -CONFIG_USB_GSPCA=m -CONFIG_USB_GSPCA_MARS=m -CONFIG_USB_GSPCA_MR97310A=m -CONFIG_USB_GSPCA_NW80X=m -CONFIG_USB_GSPCA_OV519=m -CONFIG_USB_GSPCA_OV534_9=m -CONFIG_USB_GSPCA_OV534=m -CONFIG_USB_GSPCA_PAC207=m -CONFIG_USB_GSPCA_PAC7302=m -CONFIG_USB_GSPCA_PAC7311=m -CONFIG_USB_GSPCA_SE401=m -CONFIG_USB_GSPCA_SN9C2028=m -CONFIG_USB_GSPCA_SN9C20X=m -CONFIG_USB_GSPCA_SONIXB=m -CONFIG_USB_GSPCA_SONIXJ=m -CONFIG_USB_GSPCA_SPCA1528=m -CONFIG_USB_GSPCA_SPCA500=m -CONFIG_USB_GSPCA_SPCA501=m -CONFIG_USB_GSPCA_SPCA505=m -CONFIG_USB_GSPCA_SPCA506=m -CONFIG_USB_GSPCA_SPCA508=m -CONFIG_USB_GSPCA_SPCA561=m -CONFIG_USB_GSPCA_SQ905C=m -CONFIG_USB_GSPCA_SQ905=m -CONFIG_USB_GSPCA_SQ930X=m -CONFIG_USB_GSPCA_STK014=m -CONFIG_USB_GSPCA_STK1135=m -CONFIG_USB_GSPCA_STV0680=m -CONFIG_USB_GSPCA_SUNPLUS=m -CONFIG_USB_GSPCA_T613=m -CONFIG_USB_GSPCA_TOPRO=m -CONFIG_USB_GSPCA_TOUPTEK=m -CONFIG_USB_GSPCA_TV8532=m -CONFIG_USB_GSPCA_VC032X=m -CONFIG_USB_GSPCA_VICAM=m -CONFIG_USB_GSPCA_XIRLINK_CIT=m -CONFIG_USB_GSPCA_ZC3XX=m -# CONFIG_USB_HCD_BCMA is not set -# CONFIG_USB_HCD_SSB is not set -# CONFIG_USB_HCD_TEST_MODE is not set -CONFIG_USB_HIDDEV=y -CONFIG_USB_HID=y -CONFIG_USB_HSIC_USB3503=m -CONFIG_USB_HSIC_USB4604=m -CONFIG_USB_HSO=m -CONFIG_USB_HUB_USB251XB=m -CONFIG_USB_HWA_HCD=m -CONFIG_USB_IDMOUSE=m -CONFIG_USB_IOWARRIOR=m -CONFIG_USBIP_CORE=m -# CONFIG_USBIP_DEBUG is not set -CONFIG_USB_IPHETH=m -CONFIG_USBIP_HOST=m -CONFIG_USBIP_VHCI_HCD=m -CONFIG_USBIP_VHCI_HC_PORTS=8 -CONFIG_USBIP_VHCI_NR_HCS=1 -CONFIG_USBIP_VUDC=m -CONFIG_USB_IRDA=m -CONFIG_USB_ISIGHTFW=m -# CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1301 is not set -CONFIG_USB_ISP1362_HCD=m -# CONFIG_USB_ISP1760 is not set -CONFIG_USB_KAWETH=m -CONFIG_USB_KC2190=y -CONFIG_USB_KEENE=m -CONFIG_USB_LAN78XX=m -CONFIG_USB_LCD=m -CONFIG_USB_LD=m -CONFIG_USB_LEDS_TRIGGER_USBPORT=m -CONFIG_USB_LED_TRIG=y -CONFIG_USB_LEGOTOWER=m -# CONFIG_USB_LINK_LAYER_TEST is not set -CONFIG_USB_M5602=m -CONFIG_USB_MA901=m -# CONFIG_USB_MAX3421_HCD is not set -CONFIG_USB_MDC800=m -CONFIG_USB_MICROTEK=m -CONFIG_USB_MON=y -CONFIG_USB_MR800=m -# CONFIG_USB_MUSB_HDRC is not set -CONFIG_USB_NET_AX88179_178A=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_MBIM=m -CONFIG_USB_NET_CDC_NCM=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_NET_CH9200=m -CONFIG_USB_NET_CX82310_ETH=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_HUAWEI_CDC_NCM=m -CONFIG_USB_NET_INT51X1=m -CONFIG_USB_NET_KALMIA=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_QMI_WWAN=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_RNDIS_WLAN=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_SR9700=m -# CONFIG_USB_NET_SR9800 is not set -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_OHCI_HCD_PCI=y -# CONFIG_USB_OHCI_HCD_PLATFORM is not set -CONFIG_USB_OHCI_HCD_PPC_OF_BE=y -CONFIG_USB_OHCI_HCD_PPC_OF_LE=y -CONFIG_USB_OHCI_HCD_PPC_OF=y -# CONFIG_USB_OHCI_HCD_SSB is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OTG_FSM is not set -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OXU210HP_HCD is not set -CONFIG_USB_PCI=y -CONFIG_USBPCWATCHDOG=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_PHY=y -CONFIG_USB_PRINTER=m -CONFIG_USB_PULSE8_CEC=m -# CONFIG_USB_PWC_DEBUG is not set -CONFIG_USB_PWC_INPUT_EVDEV=y -CONFIG_USB_PWC=m -# CONFIG_USB_R8A66597_HCD is not set -CONFIG_USB_RAINSHADOW_CEC=m -# CONFIG_USB_RAREMONO is not set -# CONFIG_USB_RIO500 is not set -CONFIG_USB_RTL8150=m -CONFIG_USB_RTL8152=m -CONFIG_USB_S2255=m -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_CONSOLE=y -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYBERJACK=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_DEBUG=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_EMPEG=m -# CONFIG_USB_SERIAL_F81232 is not set -CONFIG_USB_SERIAL_F8153X=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_IUU=m -CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_PDA=m -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KLSI=m -CONFIG_USB_SERIAL_KOBIL_SCT=m -CONFIG_USB_SERIAL_MCT_U232=m -# CONFIG_USB_SERIAL_METRO is not set -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -# CONFIG_USB_SERIAL_MXUPORT is not set -CONFIG_USB_SERIAL_NAVMAN=m -CONFIG_USB_SERIAL_OMNINET=m -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_OPTION=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_QCAUX=m -CONFIG_USB_SERIAL_QT2=m -CONFIG_USB_SERIAL_QUALCOMM=m -CONFIG_USB_SERIAL_SAFE=m -CONFIG_USB_SERIAL_SAFE_PADDED=y -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SIMPLE=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_SSU100=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -CONFIG_USB_SERIAL_UPD78F0730=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_WHITEHEAT=m -# CONFIG_USB_SERIAL_WISHBONE is not set -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_XSENS_MT=m -CONFIG_USB_SERIAL=y -CONFIG_USB_SEVSEG=m -CONFIG_USB_SI470X=m -# CONFIG_USB_SI4713 is not set -CONFIG_USB_SIERRA_NET=m -CONFIG_USB_SISUSBVGA_CON=y -CONFIG_USB_SISUSBVGA=m -# CONFIG_USB_SL811_CS is not set -CONFIG_USB_SL811_HCD_ISO=y -CONFIG_USB_SL811_HCD=m -CONFIG_USB_SNP_UDC_PLAT=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_STKWEBCAM=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -CONFIG_USB_STORAGE_DATAFAB=m -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_ENE_UB6250=m -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_REALTEK=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STV06XX=m -CONFIG_USB_SUPPORT=y -# CONFIG_USB_SWITCH_FSA9480 is not set -# CONFIG_USB_TEST is not set -CONFIG_USB_TMC=m -CONFIG_USB_TRANCEVIBRATOR=m -# CONFIG_USB_U132_HCD is not set -CONFIG_USB_UAS=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_UHCI_HCD=y -CONFIG_USB_ULPI_BUS=m -CONFIG_USB_USBNET=m -CONFIG_USB_USS720=m -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -CONFIG_USB_VIDEO_CLASS=m -CONFIG_USB_VL600=m -CONFIG_USB_WDM=m -# CONFIG_USB_WHCI_HCD is not set -# CONFIG_USB_WUSB_CBAF_DEBUG is not set -CONFIG_USB_WUSB_CBAF=m -CONFIG_USB_WUSB=m -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_PLATFORM is not set -CONFIG_USB_XUSBATM=m -CONFIG_USB=y -CONFIG_USB_YUREX=m -# CONFIG_USB_ZD1201 is not set -CONFIG_USB_ZR364XX=m -# CONFIG_USELIB is not set -CONFIG_USERFAULTFD=y -# CONFIG_USERIO is not set -CONFIG_USER_NS=y -# CONFIG_USE_THIN_ARCHIVES is not set -CONFIG_UTS_NS=y -CONFIG_UWB_HWA=m -CONFIG_UWB_I1480U=m -CONFIG_UWB=m -CONFIG_UWB_WHCI=m -# CONFIG_V4L2_FLASH_LED_CLASS is not set -CONFIG_V4L_MEM2MEM_DRIVERS=y -# CONFIG_V4L_PLATFORM_DRIVERS is not set -# CONFIG_V4L_TEST_DRIVERS is not set -# CONFIG_VCNL4000 is not set -# CONFIG_VEML6070 is not set -CONFIG_VETH=m -# CONFIG_VF610_ADC is not set -# CONFIG_VF610_DAC is not set -CONFIG_VFAT_FS=m -# CONFIG_VFIO_IOMMU_TYPE1 is not set -CONFIG_VFIO=m -CONFIG_VFIO_MDEV_DEVICE=m -CONFIG_VFIO_MDEV=m -# CONFIG_VFIO_NOIOMMU is not set -CONFIG_VFIO_PCI=m -CONFIG_VGA_ARB_MAX_GPUS=16 -CONFIG_VGA_ARB=y -# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set -CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 -CONFIG_VGACON_SOFT_SCROLLBACK=y -CONFIG_VGA_CONSOLE=y -# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set -CONFIG_VHOST_NET=m -CONFIG_VHOST_SCSI=m -CONFIG_VHOST_VSOCK=m -CONFIG_VIA_FIR=m -CONFIG_VIA_RHINE=m -CONFIG_VIA_RHINE_MMIO=y -CONFIG_VIA_VELOCITY=m -# CONFIG_VIDEO_ADV_DEBUG is not set -CONFIG_VIDEO_AU0828=m -# CONFIG_VIDEO_AU0828_RC is not set -CONFIG_VIDEO_AU0828_V4L2=y -CONFIG_VIDEO_BT848=m -CONFIG_VIDEO_CAFE_CCIC=m -CONFIG_VIDEO_CPIA2=m -# CONFIG_VIDEO_CPIA is not set -CONFIG_VIDEO_CX18_ALSA=m -CONFIG_VIDEO_CX18=m -CONFIG_VIDEO_CX231XX_ALSA=m -CONFIG_VIDEO_CX231XX_DVB=m -CONFIG_VIDEO_CX231XX=m -CONFIG_VIDEO_CX231XX_RC=y -CONFIG_VIDEO_CX23885=m -# CONFIG_VIDEO_CX25821 is not set -CONFIG_VIDEO_CX88_ALSA=m -CONFIG_VIDEO_CX88_BLACKBIRD=m -CONFIG_VIDEO_CX88_DVB=m -CONFIG_VIDEO_CX88_ENABLE_VP3054=y -CONFIG_VIDEO_CX88=m -CONFIG_VIDEO_CX88_VP3054=m -CONFIG_VIDEO_DEV=m -# CONFIG_VIDEO_DT3155 is not set -CONFIG_VIDEO_EM28XX_ALSA=m -CONFIG_VIDEO_EM28XX_DVB=m -CONFIG_VIDEO_EM28XX=m -CONFIG_VIDEO_EM28XX_RC=m -CONFIG_VIDEO_EM28XX_V4L2=m -CONFIG_VIDEO_FB_IVTV=m -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_GO7007_LOADER=m -CONFIG_VIDEO_GO7007=m -CONFIG_VIDEO_GO7007_USB=m -CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m -CONFIG_VIDEO_HDPVR=m -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_HEXIUM_ORION=m -# CONFIG_VIDEO_IVTV_ALSA is not set -# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set -CONFIG_VIDEO_IVTV=m -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set -CONFIG_VIDEO_MEYE=m -CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_NOON010PC30=m -# CONFIG_VIDEO_PCI_SKELETON is not set -# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set -CONFIG_VIDEO_PVRUSB2_DVB=y -CONFIG_VIDEO_PVRUSB2=m -CONFIG_VIDEO_PVRUSB2_SYSFS=y -CONFIG_VIDEO_SAA6588=m -CONFIG_VIDEO_SAA7134_ALSA=m -CONFIG_VIDEO_SAA7134_DVB=m -CONFIG_VIDEO_SAA7134_GO7007=m -CONFIG_VIDEO_SAA7134=m -CONFIG_VIDEO_SAA7134_RC=y -CONFIG_VIDEO_SAA7146=m -CONFIG_VIDEO_SAA7146_VV=m -CONFIG_VIDEO_SAA7164=m -# CONFIG_VIDEO_SH_MOBILE_CEU is not set -# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set -# CONFIG_VIDEO_SH_VEU is not set -CONFIG_VIDEO_SOLO6X10=m -CONFIG_VIDEO_SR030PC30=m -CONFIG_VIDEO_STK1160_AC97=y -CONFIG_VIDEO_STK1160_COMMON=m -CONFIG_VIDEO_STK1160=m -CONFIG_VIDEO_TM6000_ALSA=m -CONFIG_VIDEO_TM6000_DVB=m -CONFIG_VIDEO_TM6000=m -CONFIG_VIDEO_TUNER=m -# CONFIG_VIDEO_TW5864 is not set -# CONFIG_VIDEO_TW686X_KH is not set -CONFIG_VIDEO_TW686X=m -# CONFIG_VIDEO_TW68 is not set -CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_V4L2_SUBDEV_API=y -# CONFIG_VIDEO_VIVID is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_XILINX is not set -CONFIG_VIDEO_ZORAN_AVS6EYES=m -CONFIG_VIDEO_ZORAN_BUZ=m -CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_DC30=m -# CONFIG_VIDEO_ZORAN is not set -CONFIG_VIDEO_ZORAN_LML33=m -CONFIG_VIDEO_ZORAN_LML33R10=m -CONFIG_VIDEO_ZORAN_ZR36060=m -# CONFIG_VIPERBOARD_ADC is not set -# CONFIG_VIRT_DRIVERS is not set -CONFIG_VIRTIO_BALLOON=m -CONFIG_VIRTIO_BLK=m -# CONFIG_VIRTIO_BLK_SCSI is not set -CONFIG_VIRTIO_CONSOLE=m -CONFIG_VIRTIO_INPUT=m -# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set -CONFIG_VIRTIO_MMIO=m -CONFIG_VIRTIO_NET=m -CONFIG_VIRTIO_PCI_LEGACY=y -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_VSOCKETS=m -CONFIG_VIRTUALIZATION=y -CONFIG_VITESSE_PHY=m -CONFIG_VL6180=m -CONFIG_VLAN_8021Q_GVRP=y -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_MVRP=y -CONFIG_VLSI_FIR=m -# CONFIG_VME_BUS is not set -# CONFIG_VMXNET3 is not set -CONFIG_VORTEX=m -CONFIG_VSOCKETS=m -CONFIG_VSOCKMON=m -CONFIG_VSX=y -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set -CONFIG_VT_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_VT=y -# CONFIG_VXFS_FS is not set -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_VXGE=m -CONFIG_VXLAN=m -# CONFIG_VZ89X is not set -CONFIG_W1_CON=y -CONFIG_W1=m -# CONFIG_W1_MASTER_DS1WM is not set -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS2490=m -# CONFIG_W1_MASTER_GPIO is not set -# CONFIG_W1_MASTER_MATROX is not set -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_W1_SLAVE_DS2405=m -CONFIG_W1_SLAVE_DS2406=m -CONFIG_W1_SLAVE_DS2408=m -# CONFIG_W1_SLAVE_DS2408_READBACK is not set -CONFIG_W1_SLAVE_DS2413=m -CONFIG_W1_SLAVE_DS2423=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2438=m -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_DS2780=m -CONFIG_W1_SLAVE_DS2781=m -CONFIG_W1_SLAVE_DS28E04=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_THERM=m -CONFIG_W83627HF_WDT=m -CONFIG_W83877F_WDT=m -CONFIG_W83977F_WDT=m -# CONFIG_WAFER_WDT is not set -# CONFIG_WAN is not set -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -CONFIG_WATCHDOG_CORE=y -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -# CONFIG_WATCHDOG_NOWAYOUT is not set -# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set -CONFIG_WATCHDOG_RTAS=m -CONFIG_WATCHDOG_SYSFS=y -CONFIG_WATCHDOG=y -# CONFIG_WCN36XX_DEBUGFS is not set -CONFIG_WCN36XX=m -CONFIG_WDAT_WDT=m -CONFIG_WDTPCI=m -CONFIG_WIL6210_ISR_COR=y -CONFIG_WIL6210=m -# CONFIG_WIL6210_TRACING is not set -# CONFIG_WILC1000_SDIO is not set -# CONFIG_WILC1000_SPI is not set -CONFIG_WILINK_PLATFORM_DATA=y -# CONFIG_WIMAX is not set -CONFIG_WINBOND_840=m -CONFIG_WINBOND_FIR=m -# CONFIG_WINDFARM is not set -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS=y -CONFIG_WIZNET_W5100=m -CONFIG_WIZNET_W5100_SPI=m -CONFIG_WIZNET_W5300=m -CONFIG_WL1251=m -CONFIG_WL1251_SDIO=m -CONFIG_WL1251_SPI=m -CONFIG_WL12XX=m -CONFIG_WL18XX=m -# CONFIG_WLAN_VENDOR_ADMTEK is not set -CONFIG_WLAN_VENDOR_ATH=y -# CONFIG_WLAN_VENDOR_ATMEL is not set -CONFIG_WLAN_VENDOR_BROADCOM=y -# CONFIG_WLAN_VENDOR_CISCO is not set -CONFIG_WLAN_VENDOR_INTEL=y -CONFIG_WLAN_VENDOR_INTERSIL=y -CONFIG_WLAN_VENDOR_MARVELL=y -CONFIG_WLAN_VENDOR_MEDIATEK=y -CONFIG_WLAN_VENDOR_QUANTENNA=y -CONFIG_WLAN_VENDOR_RALINK=y -CONFIG_WLAN_VENDOR_REALTEK=y -CONFIG_WLAN_VENDOR_RSI=y -CONFIG_WLAN_VENDOR_ST=y -CONFIG_WLAN_VENDOR_TI=y -CONFIG_WLAN_VENDOR_ZYDAS=y -CONFIG_WLAN=y -CONFIG_WLCORE=m -CONFIG_WLCORE_SDIO=m -CONFIG_WLCORE_SPI=m -# CONFIG_WM831X_POWER is not set -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_POWER=m -CONFIG_WM8350_WATCHDOG=m -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set -# CONFIG_WQ_WATCHDOG is not set -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_X25 is not set -# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set -CONFIG_X86_MCELOG_LEGACY=y -# CONFIG_X86_PTDUMP is not set -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_SUB_POLICY=y -CONFIG_XFRM_USER=y -CONFIG_XFRM=y -# CONFIG_XFS_DEBUG is not set -CONFIG_XFS_FS=m -CONFIG_XFS_POSIX_ACL=y -CONFIG_XFS_QUOTA=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_WARN is not set -# CONFIG_XILINX_DMA is not set -# CONFIG_XILINX_EMACLITE is not set -CONFIG_XILINX_GMII2RGMII=m -# CONFIG_XILINX_LL_TEMAC is not set -# CONFIG_XILINX_WATCHDOG is not set -CONFIG_XILLYBUS=m -# CONFIG_XILLYBUS_OF is not set -CONFIG_XILLYBUS_PCIE=m -# CONFIG_XMON_DEFAULT is not set -CONFIG_XMON_DISASSEMBLY=y -CONFIG_XMON=y -# CONFIG_XPS_USB_HCD_XILINX is not set -CONFIG_XZ_DEC_IA64=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_SPARC=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC=y -CONFIG_YAM=m -CONFIG_YELLOWFIN=m -CONFIG_YENTA=m -CONFIG_Z3FOLD=y -CONFIG_ZBUD=y -# CONFIG_ZD1211RW_DEBUG is not set -CONFIG_ZD1211RW=m -CONFIG_ZEROPLUS_FF=y -# CONFIG_ZIIRAVE_WATCHDOG is not set -CONFIG_ZISOFS=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZLIB_INFLATE=y -# CONFIG_ZONE_DEVICE is not set -# CONFIG_ZPA2326 is not set -CONFIG_ZRAM=m -# CONFIG_ZSMALLOC_STAT is not set -CONFIG_ZSMALLOC=y -CONFIG_ZSWAP=y -# CONFIG_ZX_TDM is not set diff --git a/kernel.spec b/kernel.spec index 62f22d9f4..b0e1b1aad 100644 --- a/kernel.spec +++ b/kernel.spec @@ -267,7 +267,7 @@ Summary: The Linux kernel %define make_target vmlinux %define kernel_image vmlinux %define kernel_image_elf 1 -%ifarch ppc64 ppc64p7 +%ifarch ppc64 %define all_arch_configs kernel-%{version}-ppc64*.config %endif %ifarch ppc64le @@ -377,7 +377,7 @@ Version: %{rpmversion} Release: %{pkg_release} # DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD. # SET %%nobuildarches (ABOVE) INSTEAD -ExclusiveArch: %{all_x86} x86_64 ppc64 ppc64p7 s390x %{arm} aarch64 ppc64le +ExclusiveArch: %{all_x86} x86_64 ppc64 s390x %{arm} aarch64 ppc64le ExclusiveOS: Linux %ifnarch %{nobuildarches} Requires: kernel-core-uname-r = %{KVERREL}%{?variant} @@ -451,7 +451,6 @@ Source93: filter-aarch64.sh Source95: filter-ppc64.sh Source96: filter-ppc64le.sh Source97: filter-s390x.sh -Source98: filter-ppc64p7.sh Source99: filter-modules.sh %define modsign_cmd %{SOURCE18} @@ -469,8 +468,6 @@ Source30: kernel-ppc64.config Source31: kernel-ppc64-debug.config Source32: kernel-ppc64le.config Source33: kernel-ppc64le-debug.config -Source34: kernel-ppc64p7.config -Source35: kernel-ppc64p7-debug.config Source36: kernel-s390x.config Source37: kernel-s390x-debug.config Source38: kernel-x86_64.config From 5202ffd4a6cba4fa1d155025b36b61290e5d56cd Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 2 Oct 2017 19:09:22 +0100 Subject: [PATCH 026/289] minor ARMv7 sunxi tweaks --- baseconfig/arm/armv7/CONFIG_SUN8I_A83T_CCU | 1 + baseconfig/arm/armv7/CONFIG_SUN8I_DE2_CCU | 1 + kernel-armv7hl-debug.config | 4 ++-- kernel-armv7hl-lpae-debug.config | 4 ++-- kernel-armv7hl-lpae.config | 4 ++-- kernel-armv7hl.config | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 baseconfig/arm/armv7/CONFIG_SUN8I_A83T_CCU create mode 100644 baseconfig/arm/armv7/CONFIG_SUN8I_DE2_CCU diff --git a/baseconfig/arm/armv7/CONFIG_SUN8I_A83T_CCU b/baseconfig/arm/armv7/CONFIG_SUN8I_A83T_CCU new file mode 100644 index 000000000..a4e88a43c --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_SUN8I_A83T_CCU @@ -0,0 +1 @@ +CONFIG_SUN8I_A83T_CCU=y diff --git a/baseconfig/arm/armv7/CONFIG_SUN8I_DE2_CCU b/baseconfig/arm/armv7/CONFIG_SUN8I_DE2_CCU new file mode 100644 index 000000000..1729d1f68 --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_SUN8I_DE2_CCU @@ -0,0 +1 @@ +CONFIG_SUN8I_DE2_CCU=y diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 0c66b3b99..472881e5b 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -5923,8 +5923,8 @@ CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y -# CONFIG_SUN8I_A83T_CCU is not set -# CONFIG_SUN8I_DE2_CCU is not set +CONFIG_SUN8I_A83T_CCU=y +CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index dfa960659..63db6ead7 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -5524,8 +5524,8 @@ CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y -# CONFIG_SUN8I_A83T_CCU is not set -# CONFIG_SUN8I_DE2_CCU is not set +CONFIG_SUN8I_A83T_CCU=y +CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index 7064c0a23..b7fbbb78f 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -5501,8 +5501,8 @@ CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y -# CONFIG_SUN8I_A83T_CCU is not set -# CONFIG_SUN8I_DE2_CCU is not set +CONFIG_SUN8I_A83T_CCU=y +CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index abfa3a7a9..304cbb7dc 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -5900,8 +5900,8 @@ CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y -# CONFIG_SUN8I_A83T_CCU is not set -# CONFIG_SUN8I_DE2_CCU is not set +CONFIG_SUN8I_A83T_CCU=y +CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y From 2bd4c79775f5b3275be401a41fb08cde5ce67037 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 5 Oct 2017 09:05:43 -0700 Subject: [PATCH 027/289] Linux v4.13.5 Fix for peaq_wmi nul spew (rhbz 1497861) --- ...-prevent-KEYCTL_READ-on-negative-key.patch | 88 ------------------- baseconfig/CONFIG_CRYPTO_GCM | 2 +- baseconfig/CONFIG_CRYPTO_GHASH | 2 +- kernel-aarch64-debug.config | 4 +- kernel-aarch64.config | 4 +- kernel-armv7hl-debug.config | 4 +- kernel-armv7hl-lpae-debug.config | 4 +- kernel-armv7hl-lpae.config | 4 +- kernel-armv7hl.config | 4 +- kernel-i686-PAE.config | 4 +- kernel-i686-PAEdebug.config | 4 +- kernel-i686-debug.config | 4 +- kernel-i686.config | 4 +- kernel-ppc64-debug.config | 4 +- kernel-ppc64.config | 4 +- kernel-ppc64le-debug.config | 4 +- kernel-ppc64le.config | 4 +- kernel-s390x-debug.config | 4 +- kernel-s390x.config | 4 +- kernel-x86_64-debug.config | 4 +- kernel-x86_64.config | 4 +- kernel.spec | 18 ++-- ...-allow-L2-to-access-the-hardware-CR8.patch | 41 --------- ...required-netlink-attributes-presence.patch | 46 ---------- sources | 2 +- 25 files changed, 47 insertions(+), 224 deletions(-) delete mode 100644 KEYS-prevent-KEYCTL_READ-on-negative-key.patch delete mode 100644 kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch delete mode 100644 nl80211-check-for-the-required-netlink-attributes-presence.patch diff --git a/KEYS-prevent-KEYCTL_READ-on-negative-key.patch b/KEYS-prevent-KEYCTL_READ-on-negative-key.patch deleted file mode 100644 index d80176e66..000000000 --- a/KEYS-prevent-KEYCTL_READ-on-negative-key.patch +++ /dev/null @@ -1,88 +0,0 @@ -From patchwork Mon Sep 18 18:37:23 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: KEYS: prevent KEYCTL_READ on negative key -From: Eric Biggers -X-Patchwork-Id: 9957387 -Message-Id: <20170918183723.114253-1-ebiggers3@gmail.com> -To: keyrings@vger.kernel.org -Cc: David Howells , Michael Halcrow , - linux-security-module@vger.kernel.org, - linux-kernel@vger.kernel.org, Eric Biggers , - stable@vger.kernel.org -Date: Mon, 18 Sep 2017 11:37:23 -0700 - -From: Eric Biggers - -Because keyctl_read_key() looks up the key with no permissions -requested, it may find a negatively instantiated key. If the key is -also possessed, we went ahead and called ->read() on the key. But the -key payload will actually contain the ->reject_error rather than the -normal payload. Thus, the kernel oopses trying to read the -user_key_payload from memory address (int)-ENOKEY = 0x00000000ffffff82. - -Fortunately the payload data is stored inline, so it shouldn't be -possible to abuse this as an arbitrary memory read primitive... - -Reproducer: - keyctl new_session - keyctl request2 user desc '' @s - keyctl read $(keyctl show | awk '/user: desc/ {print $1}') - -It causes a crash like the following: - BUG: unable to handle kernel paging request at 00000000ffffff92 - IP: user_read+0x33/0xa0 - PGD 36a54067 P4D 36a54067 PUD 0 - Oops: 0000 [#1] SMP - CPU: 0 PID: 211 Comm: keyctl Not tainted 4.14.0-rc1 #337 - Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-20170228_101828-anatol 04/01/2014 - task: ffff90aa3b74c3c0 task.stack: ffff9878c0478000 - RIP: 0010:user_read+0x33/0xa0 - RSP: 0018:ffff9878c047bee8 EFLAGS: 00010246 - RAX: 0000000000000001 RBX: ffff90aa3d7da340 RCX: 0000000000000017 - RDX: 0000000000000000 RSI: 00000000ffffff82 RDI: ffff90aa3d7da340 - RBP: ffff9878c047bf00 R08: 00000024f95da94f R09: 0000000000000000 - R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000 - R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 - FS: 00007f58ece69740(0000) GS:ffff90aa3e200000(0000) knlGS:0000000000000000 - CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 - CR2: 00000000ffffff92 CR3: 0000000036adc001 CR4: 00000000003606f0 - Call Trace: - keyctl_read_key+0xac/0xe0 - SyS_keyctl+0x99/0x120 - entry_SYSCALL_64_fastpath+0x1f/0xbe - RIP: 0033:0x7f58ec787bb9 - RSP: 002b:00007ffc8d401678 EFLAGS: 00000206 ORIG_RAX: 00000000000000fa - RAX: ffffffffffffffda RBX: 00007ffc8d402800 RCX: 00007f58ec787bb9 - RDX: 0000000000000000 RSI: 00000000174a63ac RDI: 000000000000000b - RBP: 0000000000000004 R08: 00007ffc8d402809 R09: 0000000000000020 - R10: 0000000000000000 R11: 0000000000000206 R12: 00007ffc8d402800 - R13: 00007ffc8d4016e0 R14: 0000000000000000 R15: 0000000000000000 - Code: e5 41 55 49 89 f5 41 54 49 89 d4 53 48 89 fb e8 a4 b4 ad ff 85 c0 74 09 80 3d b9 4c 96 00 00 74 43 48 8b b3 20 01 00 00 4d 85 ed <0f> b7 5e 10 74 29 4d 85 e4 74 24 4c 39 e3 4c 89 e2 4c 89 ef 48 - RIP: user_read+0x33/0xa0 RSP: ffff9878c047bee8 - CR2: 00000000ffffff92 - -Fixes: 61ea0c0ba904 ("KEYS: Skip key state checks when checking for possession") -Cc: [v3.13+] -Signed-off-by: Eric Biggers ---- - security/keys/keyctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c -index ab0b337c84b4..6a82090c7fc1 100644 ---- a/security/keys/keyctl.c -+++ b/security/keys/keyctl.c -@@ -766,6 +766,11 @@ long keyctl_read_key(key_serial_t keyid, char __user *buffer, size_t buflen) - - key = key_ref_to_ptr(key_ref); - -+ if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) { -+ ret = -ENOKEY; -+ goto error2; -+ } -+ - /* see if we can read it directly */ - ret = key_permission(key_ref, KEY_NEED_READ); - if (ret == 0) diff --git a/baseconfig/CONFIG_CRYPTO_GCM b/baseconfig/CONFIG_CRYPTO_GCM index 0cb7edc79..8b509be56 100644 --- a/baseconfig/CONFIG_CRYPTO_GCM +++ b/baseconfig/CONFIG_CRYPTO_GCM @@ -1 +1 @@ -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y diff --git a/baseconfig/CONFIG_CRYPTO_GHASH b/baseconfig/CONFIG_CRYPTO_GHASH index b94cd971d..2104f2f02 100644 --- a/baseconfig/CONFIG_CRYPTO_GHASH +++ b/baseconfig/CONFIG_CRYPTO_GHASH @@ -1 +1 @@ -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 0b67e4f6d..c12a5be0b 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -1010,11 +1010,11 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM64_CE=m CONFIG_CRYPTO_GHASH_ARM_CE=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 60b736513..975087e0c 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -1009,11 +1009,11 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM64_CE=m CONFIG_CRYPTO_GHASH_ARM_CE=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 472881e5b..432dd7734 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -1064,10 +1064,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM_CE=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 63db6ead7..bd5134b5a 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -1012,10 +1012,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM_CE=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index b7fbbb78f..1e93c9195 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -1010,10 +1010,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM_CE=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 304cbb7dc..bdb41cc97 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -1062,10 +1062,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM_CE=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 857341b84..3e923e8d6 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -870,9 +870,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index e300a78b8..dc0d0f59a 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -872,9 +872,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 7cba83e63..3dc57b37c 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -872,9 +872,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-i686.config b/kernel-i686.config index 716993137..96c697ea6 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -870,9 +870,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 86745699d..60528f85b 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -852,9 +852,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-ppc64.config b/kernel-ppc64.config index ba4c699be..58e03fd12 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -850,9 +850,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index d00d68bda..4818e1809 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -806,9 +806,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index e33adfbfa..72e713014 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -804,9 +804,9 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 36d04c269..c3a96b666 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -797,10 +797,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_GHASH_S390=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-s390x.config b/kernel-s390x.config index 4685bc0c5..a76883031 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -795,10 +795,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_GHASH_S390=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 5fa587c8d..f4b826b28 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -896,10 +896,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 0dcddee27..5d3f82fb1 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -894,10 +894,10 @@ CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m -CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_KEYWRAP=m diff --git a/kernel.spec b/kernel.spec index b0e1b1aad..f1ee3daa9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 4 +%define stable_update 5 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -655,12 +655,6 @@ Patch617: Fix-for-module-sig-verification.patch # rhbz 1485086 Patch619: pci-mark-amd-stoney-gpu-ats-as-broken.patch -# CVE-2017-12154 rhbz 1491224 1491231 -Patch620: kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch - -# CVE-2017-12153 rhbz 1491046 1491057 -Patch621: nl80211-check-for-the-required-netlink-attributes-presence.patch - # Should fix our QXL issues Patch622: qxl-fixes.patch @@ -668,14 +662,14 @@ Patch622: qxl-fixes.patch Patch623: HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch Patch624: input-rmi4-remove-the-need-for-artifical-IRQ.patch -# rhbz 1493435 1493436 -Patch625: KEYS-prevent-KEYCTL_READ-on-negative-key.patch - # rhbz 1432684 Patch626: 1-3-net-set-tb--fast_sk_family.patch Patch627: 2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch Patch628: 3-3-inet-fix-improper-empty-comparison.patch +# rhbz 1497861 +Patch629: 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch + # END OF PATCH DEFINITIONS %endif @@ -2230,6 +2224,10 @@ fi # # %changelog +* Thu Oct 05 2017 Laura Abbott - 4.13.5-300 +- Linux v4.13.5 +- Fix for peaq_wmi nul spew (rhbz 1497861) + * Thu Sep 28 2017 Laura Abbott - 4.13.4-300 - Linux v4.13.4 diff --git a/kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch b/kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch deleted file mode 100644 index 978401257..000000000 --- a/kvm-nVMX-Don-t-allow-L2-to-access-the-hardware-CR8.patch +++ /dev/null @@ -1,41 +0,0 @@ -From patchwork Tue Sep 12 20:02:54 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: kvm: nVMX: Don't allow L2 to access the hardware CR8 -From: Jim Mattson -X-Patchwork-Id: 9950035 -Message-Id: <20170912200254.111560-1-jmattson@google.com> -To: kvm@vger.kernel.org, P J P , - Paolo Bonzini -Cc: Jim Mattson -Date: Tue, 12 Sep 2017 13:02:54 -0700 - -If L1 does not specify the "use TPR shadow" VM-execution control in -vmcs12, then L0 must specify the "CR8-load exiting" and "CR8-store -exiting" VM-execution controls in vmcs02. Failure to do so will give -the L2 VM unrestricted read/write access to the hardware CR8. - -This fixes CVE-2017-12154. - -Signed-off-by: Jim Mattson ---- - arch/x86/kvm/vmx.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index c6efc1f88b25..885b7eed4320 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -10525,6 +10525,11 @@ static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12, - if (exec_control & CPU_BASED_TPR_SHADOW) { - vmcs_write64(VIRTUAL_APIC_PAGE_ADDR, -1ull); - vmcs_write32(TPR_THRESHOLD, vmcs12->tpr_threshold); -+ } else { -+#ifdef CONFIG_X86_64 -+ exec_control |= CPU_BASED_CR8_LOAD_EXITING | -+ CPU_BASED_CR8_STORE_EXITING; -+#endif - } - - /* diff --git a/nl80211-check-for-the-required-netlink-attributes-presence.patch b/nl80211-check-for-the-required-netlink-attributes-presence.patch deleted file mode 100644 index 3b52fae87..000000000 --- a/nl80211-check-for-the-required-netlink-attributes-presence.patch +++ /dev/null @@ -1,46 +0,0 @@ -From patchwork Tue Sep 12 22:21:21 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: nl80211: check for the required netlink attributes presence -From: Vladis Dronov -X-Patchwork-Id: 9950281 -Message-Id: <20170912222121.5032-1-vdronov@redhat.com> -To: Johannes Berg , - Johannes Berg , - linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org -Cc: Vladis Dronov , "# v3 . 1-rc1" -Date: Wed, 13 Sep 2017 00:21:21 +0200 - -nl80211_set_rekey_data() does not check if the required attributes -NL80211_REKEY_DATA_{REPLAY_CTR,KEK,KCK} are present when processing -NL80211_CMD_SET_REKEY_OFFLOAD request. This request can be issued by -users with CAP_NET_ADMIN privilege and may result in NULL dereference -and a system crash. Add a check for the required attributes presence. -This patch is based on the patch by bo Zhang. - -This fixes CVE-2017-12153. - -References: https://bugzilla.redhat.com/show_bug.cgi?id=1491046 -Fixes: e5497d766ad ("cfg80211/nl80211: support GTK rekey offload") -Cc: # v3.1-rc1 -Reported-by: bo Zhang -Signed-off-by: Vladis Dronov ---- - net/wireless/nl80211.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c -index 0df8023..fbd5593 100644 ---- a/net/wireless/nl80211.c -+++ b/net/wireless/nl80211.c -@@ -10903,6 +10903,9 @@ static int nl80211_set_rekey_data(struct sk_buff *skb, struct genl_info *info) - if (err) - return err; - -+ if (!tb[NL80211_REKEY_DATA_REPLAY_CTR] || !tb[NL80211_REKEY_DATA_KEK] || -+ !tb[NL80211_REKEY_DATA_KCK]) -+ return -EINVAL; - if (nla_len(tb[NL80211_REKEY_DATA_REPLAY_CTR]) != NL80211_REPLAY_CTR_LEN) - return -ERANGE; - if (nla_len(tb[NL80211_REKEY_DATA_KEK]) != NL80211_KEK_LEN) diff --git a/sources b/sources index 51a0f6eb9..fedd63a3b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.4.xz) = 37aa8add92ae23b627c166b878b6d8191b75c2aca3a2eb2d7ae4f55262644731ab51a3ee171186fc0b011c6c8e537686377c3e73e8928797323b0a958eeb4b6b +SHA512 (patch-4.13.5.xz) = de55b07e52e88e3bc5af54c619933a81f535393f20712f38000bffa77ded22c7a16e70e43c28daf576bcc6cd3ad39387b8e1f430e3d22222f572113d2345df48 From 606fd757eb5b334e9b1af97441fc7f2bcd429d8d Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 5 Oct 2017 09:20:37 -0700 Subject: [PATCH 028/289] Missed a patch --- ...q-wmi-Add-DMI-check-before-binding-t.patch | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch diff --git a/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch b/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch new file mode 100644 index 000000000..e8376331d --- /dev/null +++ b/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch @@ -0,0 +1,71 @@ +From 0e9df6a74f9573409e5a2fbe29c1389188280bfc Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Thu, 5 Oct 2017 16:02:33 +0200 +Subject: [PATCH] platform/x86: peaq-wmi: Add DMI check before binding to the + WMI interface + +It seems that the WMI GUID used by the PEAQ 2-in-1 WMI hotkeys is not +as unique as a GUID should be and is used on some other devices too. + +This is causing spurious key-press reports on these other devices. + +This commits adds a DMI check to the PEAQ 2-in-1 WMI hotkeys driver to +ensure that it is actually running on a PEAQ 2-in-1, fixing the +spurious key-presses on these other devices. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1497861 +BugLink: https://bugzilla.suse.com/attachment.cgi?id=743182 +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede +--- + drivers/platform/x86/peaq-wmi.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/drivers/platform/x86/peaq-wmi.c b/drivers/platform/x86/peaq-wmi.c +index bc98ef95514a..67fa3fa32011 100644 +--- a/drivers/platform/x86/peaq-wmi.c ++++ b/drivers/platform/x86/peaq-wmi.c +@@ -8,6 +8,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -64,8 +65,22 @@ static void peaq_wmi_poll(struct input_polled_dev *dev) + } + } + ++/* Some other devices (Shuttle XS35) use the same WMI GUID for other purposes */ ++static const struct dmi_system_id peaq_dmi_table[] = { ++ { ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"), ++ }, ++ }, ++}; ++ + static int __init peaq_wmi_init(void) + { ++ /* WMI GUID is not unique, also check for a DMI match */ ++ if (!dmi_check_system(peaq_dmi_table)) ++ return -ENODEV; ++ + if (!wmi_has_guid(PEAQ_DOLBY_BUTTON_GUID)) + return -ENODEV; + +@@ -86,6 +101,9 @@ static int __init peaq_wmi_init(void) + + static void __exit peaq_wmi_exit(void) + { ++ if (!dmi_check_system(peaq_dmi_table)) ++ return; ++ + if (!wmi_has_guid(PEAQ_DOLBY_BUTTON_GUID)) + return; + +-- +2.14.2 + From 952ab1822df514079ff4a7ebc0fdcc912bd28dd2 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 5 Oct 2017 12:23:16 -0500 Subject: [PATCH 029/289] More qxl fixup and notate the CVE fixed by 4.13.5 --- kernel.spec | 1 + qxl-fixes.patch | 87 ------------------------------------------------- 2 files changed, 1 insertion(+), 87 deletions(-) diff --git a/kernel.spec b/kernel.spec index f1ee3daa9..02ab1b27f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2227,6 +2227,7 @@ fi * Thu Oct 05 2017 Laura Abbott - 4.13.5-300 - Linux v4.13.5 - Fix for peaq_wmi nul spew (rhbz 1497861) +- Fixes CVE-2017-14954 (rhbz 1497745 1497747) * Thu Sep 28 2017 Laura Abbott - 4.13.4-300 - Linux v4.13.4 diff --git a/qxl-fixes.patch b/qxl-fixes.patch index 0b39c6f01..c8bd4b9fb 100644 --- a/qxl-fixes.patch +++ b/qxl-fixes.patch @@ -1,90 +1,3 @@ -From c463b4ad6b2ac5a40c959e6c636eafc7edb1a63b Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Wed, 6 Sep 2017 11:31:51 +0200 -Subject: qxl: fix primary surface handling - -The atomic conversion of the qxl driver didn't got the primary surface -handling completely right. It works in the common simple cases, but -fails for example when changing the display resolution using xrandr or -in multihead setups. - -The rules are simple: There is one primary surface. Before defining a -new one you have to destroy the old one. - -This patch makes qxl_primary_atomic_update() destroy the primary surface -before defining a new one. It fixes is_primary flag updates. It adds -is_primary checks so we don't try to update the primary surface in case -it already has the state we want it being in. - -Signed-off-by: Gerd Hoffmann ---- - drivers/gpu/drm/qxl/qxl_display.c | 34 +++++++++++++++++++--------------- - 1 file changed, 19 insertions(+), 15 deletions(-) - -diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index 03fe182..7babdd8f 100644 ---- a/drivers/gpu/drm/qxl/qxl_display.c -+++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -512,23 +512,25 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, - .y2 = qfb->base.height - }; - -- if (!old_state->fb) { -- qxl_io_log(qdev, -- "create primary fb: %dx%d,%d,%d\n", -- bo->surf.width, bo->surf.height, -- bo->surf.stride, bo->surf.format); -+ if (old_state->fb) { -+ qfb_old = to_qxl_framebuffer(old_state->fb); -+ bo_old = gem_to_qxl_bo(qfb_old->obj); -+ } else { -+ bo_old = NULL; -+ } - -- qxl_io_create_primary(qdev, 0, bo); -- bo->is_primary = true; -+ if (bo == bo_old) - return; - -- } else { -- qfb_old = to_qxl_framebuffer(old_state->fb); -- bo_old = gem_to_qxl_bo(qfb_old->obj); -+ if (bo_old && bo_old->is_primary) { -+ qxl_io_destroy_primary(qdev); - bo_old->is_primary = false; - } - -- bo->is_primary = true; -+ if (!bo->is_primary) { -+ qxl_io_create_primary(qdev, 0, bo); -+ bo->is_primary = true; -+ } - qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); - } - -@@ -537,13 +539,15 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane, - { - struct qxl_device *qdev = plane->dev->dev_private; - -- if (old_state->fb) -- { struct qxl_framebuffer *qfb = -+ if (old_state->fb) { -+ struct qxl_framebuffer *qfb = - to_qxl_framebuffer(old_state->fb); - struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); - -- qxl_io_destroy_primary(qdev); -- bo->is_primary = false; -+ if (bo->is_primary) { -+ qxl_io_destroy_primary(qdev); -+ bo->is_primary = false; -+ } - } - } - --- -cgit v0.12 - From 05026e6e19b29104ddba4e8979e6c7af17944695 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 15 Sep 2017 12:46:15 +0200 From d83abc1b5ef84b261942266557f0d7dc929853e6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 6 Oct 2017 11:46:33 +0100 Subject: [PATCH 030/289] ARM ACPI fix for x-gene RHBZ #1498117 --- arm64-xgene-acpi-fix.patch | 38 ++++++++++++++++++++++++++++++++++++++ kernel.spec | 6 ++++++ 2 files changed, 44 insertions(+) create mode 100644 arm64-xgene-acpi-fix.patch diff --git a/arm64-xgene-acpi-fix.patch b/arm64-xgene-acpi-fix.patch new file mode 100644 index 000000000..e0df833c0 --- /dev/null +++ b/arm64-xgene-acpi-fix.patch @@ -0,0 +1,38 @@ +From bdb9458a3382ba745a66be5526d3899103c76eda Mon Sep 17 00:00:00 2001 +From: Loc Ho +Date: Fri, 21 Jul 2017 11:24:37 -0700 +Subject: ACPI: APEI: Enable APEI multiple GHES source to share a single + external IRQ + +X-Gene platforms describe multiple GHES error sources with the same +hardware error notification type (external interrupt) and interrupt +number. + +Change the GHES interrupt request to support sharing the same IRQ. + +This change includs contributions from Tuan Phan . + +Signed-off-by: Loc Ho +Acked-by: Borislav Petkov +Signed-off-by: Rafael J. Wysocki +--- + drivers/acpi/apei/ghes.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c +index d661d45..eed09fc 100644 +--- a/drivers/acpi/apei/ghes.c ++++ b/drivers/acpi/apei/ghes.c +@@ -1157,7 +1157,8 @@ static int ghes_probe(struct platform_device *ghes_dev) + generic->header.source_id); + goto err_edac_unreg; + } +- rc = request_irq(ghes->irq, ghes_irq_func, 0, "GHES IRQ", ghes); ++ rc = request_irq(ghes->irq, ghes_irq_func, IRQF_SHARED, ++ "GHES IRQ", ghes); + if (rc) { + pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", + generic->header.source_id); +-- +cgit v1.1 + diff --git a/kernel.spec b/kernel.spec index 02ab1b27f..bb4ab3172 100644 --- a/kernel.spec +++ b/kernel.spec @@ -630,6 +630,9 @@ Patch324: bcm283x-vc4-fixes.patch # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20170912&id=723288836628bc1c0855f3bb7b64b1803e4b9e4a Patch330: arm-of-restrict-dma-configuration.patch +# Upstream ACPI fix +Patch331: arm64-xgene-acpi-fix.patch + # 400 - IBM (ppc/s390x) patches # 500 - Temp fixes/CVEs etc @@ -2224,6 +2227,9 @@ fi # # %changelog +* Fri Oct 6 2017 Peter Robinson +- ARM ACPI fix for x-gene RHBZ #1498117 + * Thu Oct 05 2017 Laura Abbott - 4.13.5-300 - Linux v4.13.5 - Fix for peaq_wmi nul spew (rhbz 1497861) From ee0bddee93dd0646fb9500211639a586ce320cd7 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 7 Oct 2017 10:09:34 +0100 Subject: [PATCH 031/289] Initial support for Socionext Synquacer platform --- ...ng-root-ports-in-link-state-handling.patch | 55 + ...result-code-of-ahci_reset_controller.patch | 77 + arm64-socionext-96b-enablement.patch | 2898 +++++++++++++++++ baseconfig/CONFIG_NET_VENDOR_SNI | 1 + baseconfig/CONFIG_PCIE_DW_HOST_ECAM | 1 + baseconfig/arm/arm64/CONFIG_NET_VENDOR_SNI | 1 + baseconfig/arm/arm64/CONFIG_PCIE_DW_HOST_ECAM | 1 + baseconfig/arm/arm64/CONFIG_SNI_NETSEC | 1 + .../arm64/CONFIG_SOCIONEXT_SYNQUACER_PREITS | 1 + kernel-aarch64-debug.config | 4 + kernel-aarch64.config | 4 + kernel-armv7hl-debug.config | 2 + kernel-armv7hl-lpae-debug.config | 2 + kernel-armv7hl-lpae.config | 2 + kernel-armv7hl.config | 2 + kernel-i686-PAE.config | 2 + kernel-i686-PAEdebug.config | 2 + kernel-i686-debug.config | 2 + kernel-i686.config | 2 + kernel-ppc64-debug.config | 2 + kernel-ppc64.config | 2 + kernel-ppc64le-debug.config | 2 + kernel-ppc64le.config | 2 + kernel-s390x-debug.config | 2 + kernel-s390x.config | 2 + kernel-x86_64-debug.config | 2 + kernel-x86_64.config | 2 + kernel.spec | 10 + 28 files changed, 3086 insertions(+) create mode 100644 PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch create mode 100644 ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch create mode 100644 arm64-socionext-96b-enablement.patch create mode 100644 baseconfig/CONFIG_NET_VENDOR_SNI create mode 100644 baseconfig/CONFIG_PCIE_DW_HOST_ECAM create mode 100644 baseconfig/arm/arm64/CONFIG_NET_VENDOR_SNI create mode 100644 baseconfig/arm/arm64/CONFIG_PCIE_DW_HOST_ECAM create mode 100644 baseconfig/arm/arm64/CONFIG_SNI_NETSEC create mode 100644 baseconfig/arm/arm64/CONFIG_SOCIONEXT_SYNQUACER_PREITS diff --git a/PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch b/PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch new file mode 100644 index 000000000..03b011561 --- /dev/null +++ b/PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch @@ -0,0 +1,55 @@ +From patchwork Mon Oct 2 14:08:40 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: PCI: aspm: deal with missing root ports in link state handling +From: Ard Biesheuvel +X-Patchwork-Id: 9980861 +Message-Id: <20171002140840.7767-1-ard.biesheuvel@linaro.org> +To: linux-pci@vger.kernel.org, bhelgaas@google.com +Cc: graeme.gregory@linaro.org, leif.lindholm@linaro.org, + daniel.thompson@Linaro.org, Ard Biesheuvel +Date: Mon, 2 Oct 2017 15:08:40 +0100 + +Even though it is unconventional, some PCIe host implementations omit +the root ports entirely, and simply consist of a host bridge (which +is not modeled as a device in the PCI hierarchy) and a link. + +When the downstream device is an endpoint, our current code does not +seem to mind this unusual configuration. However, when PCIe switches +are involved, the ASPM code assumes that any downstream switch port +has a parent, and blindly derefences the bus->parent->self field of +the pci_dev struct to chain the downstream link state to the link +state of the root port. Given that the root port is missing, the link +is not modeled at all, and nor is the link state, and attempting to +access it results in a NULL pointer dereference and a crash. + +So let's avoid this by allowing the link state chain to terminate at +the downstream port if no root port exists. + +Signed-off-by: Ard Biesheuvel +--- + drivers/pci/pcie/aspm.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c +index 1dfa10cc566b..0bea8498b5a5 100644 +--- a/drivers/pci/pcie/aspm.c ++++ b/drivers/pci/pcie/aspm.c +@@ -802,10 +802,14 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev) + + /* + * Root Ports and PCI/PCI-X to PCIe Bridges are roots of PCIe +- * hierarchies. ++ * hierarchies. Note that some PCIe host implementations omit ++ * the root ports entirely, in which case a downstream port on ++ * a switch may become the root of the link state chain for all ++ * its subordinate endpoints. + */ + if (pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT || +- pci_pcie_type(pdev) == PCI_EXP_TYPE_PCIE_BRIDGE) { ++ pci_pcie_type(pdev) == PCI_EXP_TYPE_PCIE_BRIDGE || ++ !pdev->bus->parent->self) { + link->root = link; + } else { + struct pcie_link_state *parent; diff --git a/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch b/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch new file mode 100644 index 000000000..771ca7950 --- /dev/null +++ b/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch @@ -0,0 +1,77 @@ +From patchwork Mon Oct 2 18:31:24 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: ahci: don't ignore result code of ahci_reset_controller() +X-Patchwork-Submitter: Ard Biesheuvel +X-Patchwork-Id: 820637 +X-Patchwork-Delegate: davem@davemloft.net +Message-Id: <20171002183124.17003-1-ard.biesheuvel@linaro.org> +To: linux-ide@vger.kernel.org, tj@kernel.org +Cc: graeme.gregory@linaro.org, leif.lindholm@linaro.org, + daniel.thompson@Linaro.org, Ard Biesheuvel +Date: Mon, 2 Oct 2017 19:31:24 +0100 +From: Ard Biesheuvel +List-Id: + +ahci_pci_reset_controller() calls ahci_reset_controller(), which may +fail, but ignores the result code and always returns success. This +may result in failures like below + + ahci 0000:02:00.0: version 3.0 + ahci 0000:02:00.0: enabling device (0000 -> 0003) + ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled + ahci 0000:02:00.0: controller reset failed (0xffffffff) + ahci 0000:02:00.0: failed to stop engine (-5) + ... repeated many times ... + ahci 0000:02:00.0: failed to stop engine (-5) + Unable to handle kernel paging request at virtual address ffff0000093f9018 + ... + PC is at ahci_stop_engine+0x5c/0xd8 [libahci] + LR is at ahci_deinit_port.constprop.12+0x1c/0xc0 [libahci] + ... + [] ahci_stop_engine+0x5c/0xd8 [libahci] + [] ahci_deinit_port.constprop.12+0x1c/0xc0 [libahci] + [] ahci_init_controller+0x80/0x168 [libahci] + [] ahci_pci_init_controller+0x60/0x68 [ahci] + [] ahci_init_one+0x75c/0xd88 [ahci] + [] local_pci_probe+0x3c/0xb8 + [] pci_device_probe+0x138/0x170 + [] driver_probe_device+0x2dc/0x458 + [] __driver_attach+0x114/0x118 + [] bus_for_each_dev+0x60/0xa0 + [] driver_attach+0x20/0x28 + [] bus_add_driver+0x1f0/0x2a8 + [] driver_register+0x60/0xf8 + [] __pci_register_driver+0x3c/0x48 + [] ahci_pci_driver_init+0x1c/0x1000 [ahci] + [] do_one_initcall+0x38/0x120 + +where an obvious hardware level failure results in an unnecessary 15 second +delay and a subsequent crash. + +So record the result code of ahci_reset_controller() and relay it, rather +than ignoring it. + +Signed-off-by: Ard Biesheuvel +--- + drivers/ata/ahci.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c +index 5a5fd0b404eb..649e799df9c1 100644 +--- a/drivers/ata/ahci.c ++++ b/drivers/ata/ahci.c +@@ -621,8 +621,11 @@ static void ahci_pci_save_initial_config(struct pci_dev *pdev, + static int ahci_pci_reset_controller(struct ata_host *host) + { + struct pci_dev *pdev = to_pci_dev(host->dev); ++ int rc; + +- ahci_reset_controller(host); ++ rc = ahci_reset_controller(host); ++ if (rc) ++ return rc; + + if (pdev->vendor == PCI_VENDOR_ID_INTEL) { + struct ahci_host_priv *hpriv = host->private_data; diff --git a/arm64-socionext-96b-enablement.patch b/arm64-socionext-96b-enablement.patch new file mode 100644 index 000000000..8eb99ea42 --- /dev/null +++ b/arm64-socionext-96b-enablement.patch @@ -0,0 +1,2898 @@ +From 58be18a7bbf9dca67f4260ac172a44baa59d0ee9 Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel +Date: Mon, 21 Aug 2017 10:47:48 +0100 +Subject: arm64: acpi/gtdt: validate CNTFRQ after having enabled the frame + +The ACPI GTDT code validates the CNTFRQ field of each MMIO timer +frame against the CNTFRQ system register of the current CPU, to +ensure that they are equal, which is mandated by the architecture. + +However, reading the CNTFRQ field of a frame is not possible until +the RFRQ bit in the frame's CNTACRn register is set, and doing so +before that willl produce the following error: + + arch_timer: [Firmware Bug]: CNTFRQ mismatch: frame @ 0x00000000e0be0000: (0x00000000), CPU: (0x0ee6b280) + arch_timer: Disabling MMIO timers due to CNTFRQ mismatch + arch_timer: Failed to initialize memory-mapped timer. + +The reason is that the CNTFRQ field is RES0 if access is not enabled. + +So move the validation of CNTFRQ into the loop that iterates over the +timers to find the best frame, but defer it until after we have selected +the best frame, which should also have enabled the RFRQ bit. + +Signed-off-by: Ard Biesheuvel +--- + drivers/clocksource/arm_arch_timer.c | 38 ++++++++++++++++++++---------------- + 1 file changed, 21 insertions(+), 17 deletions(-) + +diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c +index fd4b7f6..14e2419 100644 +--- a/drivers/clocksource/arm_arch_timer.c ++++ b/drivers/clocksource/arm_arch_timer.c +@@ -1268,10 +1268,6 @@ arch_timer_mem_find_best_frame(struct arch_timer_mem *timer_mem) + + iounmap(cntctlbase); + +- if (!best_frame) +- pr_err("Unable to find a suitable frame in timer @ %pa\n", +- &timer_mem->cntctlbase); +- + return best_frame; + } + +@@ -1372,6 +1368,8 @@ static int __init arch_timer_mem_of_init(struct device_node *np) + + frame = arch_timer_mem_find_best_frame(timer_mem); + if (!frame) { ++ pr_err("Unable to find a suitable frame in timer @ %pa\n", ++ &timer_mem->cntctlbase); + ret = -EINVAL; + goto out; + } +@@ -1420,7 +1418,7 @@ arch_timer_mem_verify_cntfrq(struct arch_timer_mem *timer_mem) + static int __init arch_timer_mem_acpi_init(int platform_timer_count) + { + struct arch_timer_mem *timers, *timer; +- struct arch_timer_mem_frame *frame; ++ struct arch_timer_mem_frame *frame, *best_frame = NULL; + int timer_count, i, ret = 0; + + timers = kcalloc(platform_timer_count, sizeof(*timers), +@@ -1432,14 +1430,6 @@ static int __init arch_timer_mem_acpi_init(int platform_timer_count) + if (ret || !timer_count) + goto out; + +- for (i = 0; i < timer_count; i++) { +- ret = arch_timer_mem_verify_cntfrq(&timers[i]); +- if (ret) { +- pr_err("Disabling MMIO timers due to CNTFRQ mismatch\n"); +- goto out; +- } +- } +- + /* + * While unlikely, it's theoretically possible that none of the frames + * in a timer expose the combination of feature we want. +@@ -1448,12 +1438,26 @@ static int __init arch_timer_mem_acpi_init(int platform_timer_count) + timer = &timers[i]; + + frame = arch_timer_mem_find_best_frame(timer); +- if (frame) +- break; ++ if (!best_frame) ++ best_frame = frame; ++ ++ ret = arch_timer_mem_verify_cntfrq(timer); ++ if (ret) { ++ pr_err("Disabling MMIO timers due to CNTFRQ mismatch\n"); ++ goto out; ++ } ++ ++ if (!best_frame) /* implies !frame */ ++ /* ++ * Only complain about missing suitable frames if we ++ * haven't already found one in a previous iteration. ++ */ ++ pr_err("Unable to find a suitable frame in timer @ %pa\n", ++ &timer->cntctlbase); + } + +- if (frame) +- ret = arch_timer_mem_frame_register(frame); ++ if (best_frame) ++ ret = arch_timer_mem_frame_register(best_frame); + out: + kfree(timers); + return ret; +-- +cgit v1.1 + +From 26e7bb47b0fb03a01be1e391a08c7375b45335a2 Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel +Date: Mon, 21 Aug 2017 20:29:05 +0100 +Subject: pci: designware: add driver for DWC controller in ECAM shift mode + +Some implementations of the Synopsys Designware PCIe controller implement +a so-called ECAM shift mode, which allows a static memory window to be +configured that covers the configuration space of the entire bus range. + +If the firmware performs all the low level configuration that is required +to expose this controller in a fully ECAM compatible manner, we can +simply describe it as "pci-host-ecam-generic" and be done with it. +However, it appears that in some cases (one of which is the Armada 80x0), +the IP is synthesized with an ATU window size that does not allow the +first bus to be mapped in a way that prevents the device on the +downstream port from appearing more than once. + +So implement a driver that relies on the firmware to perform all low +level initialization, and drives the controller in ECAM mode, but +overrides the config space accessors to take the above quirk into +account. + +Note that, unlike most drivers for this IP, this driver does not expose +a fake bridge device at B/D/F 00:00.0. There is no point in doing so, +given that this is not a true bridge, and does not require any windows +to be configured in order for the downstream device to operate correctly. +Omitting it also prevents the PCI resource allocation routines from +handing out BAR space to it unnecessarily. + +Cc: Bjorn Helgaas +Cc: Jingoo Han +Cc: Joao Pinto +Signed-off-by: Ard Biesheuvel +--- + drivers/pci/dwc/Kconfig | 11 +++++ + drivers/pci/dwc/Makefile | 1 + + drivers/pci/dwc/pcie-designware-ecam.c | 77 ++++++++++++++++++++++++++++++++++ + 3 files changed, 89 insertions(+) + create mode 100644 drivers/pci/dwc/pcie-designware-ecam.c + +diff --git a/drivers/pci/dwc/Kconfig b/drivers/pci/dwc/Kconfig +index 22ec82f..19856b1 100644 +--- a/drivers/pci/dwc/Kconfig ++++ b/drivers/pci/dwc/Kconfig +@@ -169,4 +169,15 @@ config PCIE_KIRIN + Say Y here if you want PCIe controller support + on HiSilicon Kirin series SoCs. + ++config PCIE_DW_HOST_ECAM ++ bool "Synopsys DesignWare PCIe controller in ECAM mode" ++ depends on OF && PCI ++ select PCI_HOST_COMMON ++ select IRQ_DOMAIN ++ help ++ Add support for Synopsys DesignWare PCIe controllers configured ++ by the firmware into ECAM shift mode. In some cases, these are ++ fully ECAM compliant, in which case the pci-host-generic driver ++ may be used instead. ++ + endmenu +diff --git a/drivers/pci/dwc/Makefile b/drivers/pci/dwc/Makefile +index c61be97..7d5a23e 100644 +--- a/drivers/pci/dwc/Makefile ++++ b/drivers/pci/dwc/Makefile +@@ -1,5 +1,6 @@ + obj-$(CONFIG_PCIE_DW) += pcie-designware.o + obj-$(CONFIG_PCIE_DW_HOST) += pcie-designware-host.o ++obj-$(CONFIG_PCIE_DW_HOST_ECAM) += pcie-designware-ecam.o + obj-$(CONFIG_PCIE_DW_EP) += pcie-designware-ep.o + obj-$(CONFIG_PCIE_DW_PLAT) += pcie-designware-plat.o + ifneq ($(filter y,$(CONFIG_PCI_DRA7XX_HOST) $(CONFIG_PCI_DRA7XX_EP)),) +diff --git a/drivers/pci/dwc/pcie-designware-ecam.c b/drivers/pci/dwc/pcie-designware-ecam.c +new file mode 100644 +index 0000000..ede627d +--- /dev/null ++++ b/drivers/pci/dwc/pcie-designware-ecam.c +@@ -0,0 +1,77 @@ ++/* ++ * Driver for mostly ECAM compatible Synopsys dw PCIe controllers ++ * configured by the firmware into RC mode ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Copyright (C) 2014 ARM Limited ++ * Copyright (C) 2017 Linaro Limited ++ * ++ * Authors: Will Deacon ++ * Ard Biesheuvel ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int pci_dw_ecam_config_read(struct pci_bus *bus, u32 devfn, int where, ++ int size, u32 *val) ++{ ++ struct pci_config_window *cfg = bus->sysdata; ++ ++ /* ++ * The Synopsys dw PCIe controller in RC mode will not filter type 0 ++ * config TLPs sent to devices 1 and up on its downstream port, ++ * resulting in devices appearing multiple times on bus 0 unless we ++ * filter them here. ++ */ ++ if (bus->number == cfg->busr.start && PCI_SLOT(devfn) > 0) { ++ *val = 0xffffffff; ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ } ++ return pci_generic_config_read(bus, devfn, where, size, val); ++} ++ ++static int pci_dw_ecam_config_write(struct pci_bus *bus, u32 devfn, int where, ++ int size, u32 val) ++{ ++ struct pci_config_window *cfg = bus->sysdata; ++ ++ if (bus->number == cfg->busr.start && PCI_SLOT(devfn) > 0) ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ ++ return pci_generic_config_write(bus, devfn, where, size, val); ++} ++ ++static struct pci_ecam_ops pci_dw_ecam_bus_ops = { ++ .pci_ops.map_bus = pci_ecam_map_bus, ++ .pci_ops.read = pci_dw_ecam_config_read, ++ .pci_ops.write = pci_dw_ecam_config_write, ++ .bus_shift = 20, ++}; ++ ++static const struct of_device_id pci_dw_ecam_of_match[] = { ++ { .compatible = "marvell,armada8k-pcie-ecam" }, ++ { .compatible = "socionext,synquacer-pcie-ecam" }, ++ { .compatible = "snps,dw-pcie-ecam" }, ++ { }, ++}; ++ ++static int pci_dw_ecam_probe(struct platform_device *pdev) ++{ ++ return pci_host_common_probe(pdev, &pci_dw_ecam_bus_ops); ++} ++ ++static struct platform_driver pci_dw_ecam_driver = { ++ .driver.name = "pcie-designware-ecam", ++ .driver.of_match_table = pci_dw_ecam_of_match, ++ .driver.suppress_bind_attrs = true, ++ .probe = pci_dw_ecam_probe, ++}; ++builtin_platform_driver(pci_dw_ecam_driver); +-- +cgit v1.1 + +From e3dff048a10f16aa0fd32438442ce39558bbdbef Mon Sep 17 00:00:00 2001 +From: Jassi Brar +Date: Tue, 29 Aug 2017 22:45:59 +0530 +Subject: net: socionext: Add Synquacer NetSec driver + +This driver adds support for Socionext "netsec" IP Gigabit +Ethernet + PHY IP used in the Synquacer SC2A11 SoC. + +Signed-off-by: Jassi Brar +Signed-off-by: Ard Biesheuvel +--- + drivers/net/ethernet/Kconfig | 1 + + drivers/net/ethernet/Makefile | 1 + + drivers/net/ethernet/socionext/Kconfig | 29 + + drivers/net/ethernet/socionext/Makefile | 1 + + drivers/net/ethernet/socionext/netsec/Makefile | 6 + + drivers/net/ethernet/socionext/netsec/netsec.h | 408 ++++++++++++++ + .../socionext/netsec/netsec_desc_ring_access.c | 623 +++++++++++++++++++++ + .../net/ethernet/socionext/netsec/netsec_ethtool.c | 78 +++ + .../ethernet/socionext/netsec/netsec_gmac_access.c | 330 +++++++++++ + .../net/ethernet/socionext/netsec/netsec_netdev.c | 540 ++++++++++++++++++ + .../ethernet/socionext/netsec/netsec_platform.c | 435 ++++++++++++++ + 11 files changed, 2452 insertions(+) + create mode 100644 drivers/net/ethernet/socionext/Kconfig + create mode 100644 drivers/net/ethernet/socionext/Makefile + create mode 100644 drivers/net/ethernet/socionext/netsec/Makefile + create mode 100644 drivers/net/ethernet/socionext/netsec/netsec.h + create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c + create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_ethtool.c + create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c + create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_netdev.c + create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_platform.c + +diff --git a/drivers/net/ethernet/Kconfig b/drivers/net/ethernet/Kconfig +index c604213..d50519e 100644 +--- a/drivers/net/ethernet/Kconfig ++++ b/drivers/net/ethernet/Kconfig +@@ -170,6 +170,7 @@ source "drivers/net/ethernet/sis/Kconfig" + source "drivers/net/ethernet/sfc/Kconfig" + source "drivers/net/ethernet/sgi/Kconfig" + source "drivers/net/ethernet/smsc/Kconfig" ++source "drivers/net/ethernet/socionext/Kconfig" + source "drivers/net/ethernet/stmicro/Kconfig" + source "drivers/net/ethernet/sun/Kconfig" + source "drivers/net/ethernet/tehuti/Kconfig" +diff --git a/drivers/net/ethernet/Makefile b/drivers/net/ethernet/Makefile +index a0a03d4..6ae1bb9 100644 +--- a/drivers/net/ethernet/Makefile ++++ b/drivers/net/ethernet/Makefile +@@ -81,6 +81,7 @@ obj-$(CONFIG_SFC) += sfc/ + obj-$(CONFIG_SFC_FALCON) += sfc/falcon/ + obj-$(CONFIG_NET_VENDOR_SGI) += sgi/ + obj-$(CONFIG_NET_VENDOR_SMSC) += smsc/ ++obj-$(CONFIG_NET_VENDOR_SNI) += socionext/ + obj-$(CONFIG_NET_VENDOR_STMICRO) += stmicro/ + obj-$(CONFIG_NET_VENDOR_SUN) += sun/ + obj-$(CONFIG_NET_VENDOR_TEHUTI) += tehuti/ +diff --git a/drivers/net/ethernet/socionext/Kconfig b/drivers/net/ethernet/socionext/Kconfig +new file mode 100644 +index 0000000..a6dc195 +--- /dev/null ++++ b/drivers/net/ethernet/socionext/Kconfig +@@ -0,0 +1,29 @@ ++# ++# Socionext Network device configuration ++# ++ ++config NET_VENDOR_SNI ++ bool "Socionext devices" ++ default y ++ ---help--- ++ If you have a network (Ethernet) card belonging to this class, say Y. ++ ++ Note that the answer to this question doesn't directly affect the ++ the questions about Socionext cards. If you say Y, you will be asked ++ for your specific card in the following questions. ++ ++if NET_VENDOR_SNI ++ ++config SNI_NETSEC ++ tristate "NETSEC Driver Support" ++ depends on OF ++ select PHYLIB ++ select MII ++help ++ Enable to add support for the SocioNext NetSec Gigabit Ethernet ++ controller + PHY, as found on the Synquacer SC2A11 SoC ++ ++ To compile this driver as a module, choose M here: the module will be ++ called netsec. If unsure, say N. ++ ++endif # NET_VENDOR_SNI +diff --git a/drivers/net/ethernet/socionext/Makefile b/drivers/net/ethernet/socionext/Makefile +new file mode 100644 +index 0000000..9555899 +--- /dev/null ++++ b/drivers/net/ethernet/socionext/Makefile +@@ -0,0 +1 @@ ++obj-$(CONFIG_SNI_NETSEC) += netsec/ +diff --git a/drivers/net/ethernet/socionext/netsec/Makefile b/drivers/net/ethernet/socionext/netsec/Makefile +new file mode 100644 +index 0000000..18884ed +--- /dev/null ++++ b/drivers/net/ethernet/socionext/netsec/Makefile +@@ -0,0 +1,6 @@ ++obj-$(CONFIG_SNI_NETSEC) := netsec.o ++netsec-objs := netsec_desc_ring_access.o \ ++ netsec_netdev.o \ ++ netsec_ethtool.o \ ++ netsec_platform.o \ ++ netsec_gmac_access.o +diff --git a/drivers/net/ethernet/socionext/netsec/netsec.h b/drivers/net/ethernet/socionext/netsec/netsec.h +new file mode 100644 +index 0000000..3b97661 +--- /dev/null ++++ b/drivers/net/ethernet/socionext/netsec/netsec.h +@@ -0,0 +1,408 @@ ++/** ++ * netsec.h ++ * ++ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited. ++ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved. ++ * Andy Green ++ * Jassi Brar ++ * Ard Biesheuvel ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ */ ++#ifndef NETSEC_INTERNAL_H ++#define NETSEC_INTERNAL_H ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define NETSEC_FLOW_CONTROL_START_THRESHOLD 36 ++#define NETSEC_FLOW_CONTROL_STOP_THRESHOLD 48 ++ ++#define NETSEC_CLK_MHZ 1000000 ++ ++#define NETSEC_RX_PKT_BUF_LEN 1522 ++#define NETSEC_RX_JUMBO_PKT_BUF_LEN 9022 ++ ++#define NETSEC_NETDEV_TX_PKT_SCAT_NUM_MAX 19 ++ ++#define DESC_NUM 128 ++ ++#define NETSEC_TX_SHIFT_OWN_FIELD 31 ++#define NETSEC_TX_SHIFT_LD_FIELD 30 ++#define NETSEC_TX_SHIFT_DRID_FIELD 24 ++#define NETSEC_TX_SHIFT_PT_FIELD 21 ++#define NETSEC_TX_SHIFT_TDRID_FIELD 16 ++#define NETSEC_TX_SHIFT_CC_FIELD 15 ++#define NETSEC_TX_SHIFT_FS_FIELD 9 ++#define NETSEC_TX_LAST 8 ++#define NETSEC_TX_SHIFT_CO 7 ++#define NETSEC_TX_SHIFT_SO 6 ++#define NETSEC_TX_SHIFT_TRS_FIELD 4 ++ ++#define NETSEC_RX_PKT_OWN_FIELD 31 ++#define NETSEC_RX_PKT_LD_FIELD 30 ++#define NETSEC_RX_PKT_SDRID_FIELD 24 ++#define NETSEC_RX_PKT_FR_FIELD 23 ++#define NETSEC_RX_PKT_ER_FIELD 21 ++#define NETSEC_RX_PKT_ERR_FIELD 16 ++#define NETSEC_RX_PKT_TDRID_FIELD 12 ++#define NETSEC_RX_PKT_FS_FIELD 9 ++#define NETSEC_RX_PKT_LS_FIELD 8 ++#define NETSEC_RX_PKT_CO_FIELD 6 ++ ++#define NETSEC_RX_PKT_ERR_MASK 3 ++ ++#define NETSEC_MAX_TX_PKT_LEN 1518 ++#define NETSEC_MAX_TX_JUMBO_PKT_LEN 9018 ++ ++enum netsec_rings { ++ NETSEC_RING_TX, ++ NETSEC_RING_RX ++}; ++ ++#define NETSEC_RING_GMAC 15 ++#define NETSEC_RING_MAX 1 ++ ++#define NETSEC_TCP_SEG_LEN_MAX 1460 ++#define NETSEC_TCP_JUMBO_SEG_LEN_MAX 8960 ++ ++#define NETSEC_RX_CKSUM_NOTAVAIL 0 ++#define NETSEC_RX_CKSUM_OK 1 ++#define NETSEC_RX_CKSUM_NG 2 ++ ++#define NETSEC_TOP_IRQ_REG_CODE_LOAD_END BIT(20) ++#define NETSEC_IRQ_TRANSITION_COMPLETE BIT(4) ++#define NETSEC_IRQ_RX BIT(1) ++#define NETSEC_IRQ_TX BIT(0) ++ ++#define NETSEC_IRQ_EMPTY BIT(17) ++#define NETSEC_IRQ_ERR BIT(16) ++#define NETSEC_IRQ_PKT_CNT BIT(15) ++#define NETSEC_IRQ_TIMEUP BIT(14) ++#define NETSEC_IRQ_RCV (NETSEC_IRQ_PKT_CNT | \ ++ NETSEC_IRQ_TIMEUP) ++ ++#define NETSEC_IRQ_TX_DONE BIT(15) ++#define NETSEC_IRQ_SND (NETSEC_IRQ_TX_DONE | \ ++ NETSEC_IRQ_TIMEUP) ++ ++#define NETSEC_MODE_TRANS_COMP_IRQ_N2T BIT(20) ++#define NETSEC_MODE_TRANS_COMP_IRQ_T2N BIT(19) ++ ++#define NETSEC_DESC_MIN 2 ++#define NETSEC_DESC_MAX 2047 ++#define NETSEC_INT_PKTCNT_MAX 2047 ++ ++#define NETSEC_FLOW_START_TH_MAX 95 ++#define NETSEC_FLOW_STOP_TH_MAX 95 ++#define NETSEC_FLOW_PAUSE_TIME_MIN 5 ++ ++#define NETSEC_CLK_EN_REG_DOM_ALL 0x3f ++ ++#define NETSEC_REG_TOP_STATUS 0x80 ++#define NETSEC_REG_TOP_INTEN 0x81 ++#define NETSEC_REG_INTEN_SET 0x8d ++#define NETSEC_REG_INTEN_CLR 0x8e ++#define NETSEC_REG_NRM_TX_STATUS 0x100 ++#define NETSEC_REG_NRM_TX_INTEN 0x101 ++#define NETSEC_REG_NRM_TX_INTEN_SET 0x10a ++#define NETSEC_REG_NRM_TX_INTEN_CLR 0x10b ++#define NETSEC_REG_NRM_RX_STATUS 0x110 ++#define NETSEC_REG_NRM_RX_INTEN 0x111 ++#define NETSEC_REG_NRM_RX_INTEN_SET 0x11a ++#define NETSEC_REG_NRM_RX_INTEN_CLR 0x11b ++#define NETSEC_REG_RESERVED_RX_DESC_START 0x122 ++#define NETSEC_REG_RESERVED_TX_DESC_START 0x132 ++#define NETSEC_REG_CLK_EN 0x40 ++#define NETSEC_REG_SOFT_RST 0x41 ++#define NETSEC_REG_PKT_CMD_BUF 0x34 ++#define NETSEC_REG_PKT_CTRL 0x50 ++#define NETSEC_REG_COM_INIT 0x48 ++#define NETSEC_REG_DMA_TMR_CTRL 0x83 ++#define NETSEC_REG_F_TAIKI_MC_VER 0x8b ++#define NETSEC_REG_F_TAIKI_VER 0x8c ++#define NETSEC_REG_DMA_HM_CTRL 0x85 ++#define NETSEC_REG_DMA_MH_CTRL 0x88 ++#define NETSEC_REG_ADDR_DIS_CORE 0x86 ++#define NETSEC_REG_DMAC_HM_CMD_BUF 0x84 ++#define NETSEC_REG_DMAC_MH_CMD_BUF 0x87 ++#define NETSEC_REG_NRM_TX_PKTCNT 0x104 ++#define NETSEC_REG_NRM_TX_DONE_TXINT_PKTCNT 0x106 ++#define NETSEC_REG_NRM_RX_RXINT_PKTCNT 0x116 ++#define NETSEC_REG_NRM_TX_TXINT_TMR 0x108 ++#define NETSEC_REG_NRM_RX_RXINT_TMR 0x118 ++#define NETSEC_REG_NRM_TX_DONE_PKTCNT 0x105 ++#define NETSEC_REG_NRM_RX_PKTCNT 0x115 ++#define NETSEC_REG_NRM_TX_TMR 0x107 ++#define NETSEC_REG_NRM_RX_TMR 0x117 ++#define NETSEC_REG_NRM_TX_DESC_START_UP 0x10d ++#define NETSEC_REG_NRM_TX_DESC_START_LW 0x102 ++#define NETSEC_REG_NRM_RX_DESC_START_UP 0x11d ++#define NETSEC_REG_NRM_RX_DESC_START_LW 0x112 ++#define NETSEC_REG_NRM_TX_CONFIG 0x10c ++#define NETSEC_REG_NRM_RX_CONFIG 0x11c ++#define MAC_REG_DATA 0x470 ++#define MAC_REG_CMD 0x471 ++#define MAC_REG_FLOW_TH 0x473 ++#define MAC_REG_INTF_SEL 0x475 ++#define MAC_REG_DESC_INIT 0x47f ++#define MAC_REG_DESC_SOFT_RST 0x481 ++#define NETSEC_REG_MODE_TRANS_COMP_STATUS 0x140 ++#define GMAC_REG_MCR 0x0000 ++#define GMAC_REG_MFFR 0x0004 ++#define GMAC_REG_GAR 0x0010 ++#define GMAC_REG_GDR 0x0014 ++#define GMAC_REG_FCR 0x0018 ++#define GMAC_REG_BMR 0x1000 ++#define GMAC_REG_RDLAR 0x100c ++#define GMAC_REG_TDLAR 0x1010 ++#define GMAC_REG_OMR 0x1018 ++ ++#define NETSEC_PKT_CTRL_REG_MODE_NRM BIT(28) ++#define NETSEC_PKT_CTRL_REG_EN_JUMBO BIT(27) ++#define NETSEC_PKT_CTRL_REG_LOG_CHKSUM_ER BIT(3) ++#define NETSEC_PKT_CTRL_REG_LOG_HD_INCOMPLETE BIT(2) ++#define NETSEC_PKT_CTRL_REG_LOG_HD_ER BIT(1) ++#define NETSEC_PKT_CTRL_REG_DRP_NO_MATCH BIT(0) ++ ++#define NETSEC_CLK_EN_REG_DOM_G BIT(5) ++#define NETSEC_CLK_EN_REG_DOM_C BIT(1) ++#define NETSEC_CLK_EN_REG_DOM_D BIT(0) ++ ++#define NETSEC_COM_INIT_REG_DB BIT(2) ++#define NETSEC_COM_INIT_REG_CLS BIT(1) ++#define NETSEC_COM_INIT_REG_ALL (NETSEC_COM_INIT_REG_CLS | \ ++ NETSEC_COM_INIT_REG_DB) ++ ++#define NETSEC_SOFT_RST_REG_RESET 0 ++#define NETSEC_SOFT_RST_REG_RUN BIT(31) ++ ++#define NETSEC_DMA_CTRL_REG_STOP 1 ++#define MH_CTRL__MODE_TRANS BIT(20) ++ ++#define NETSEC_GMAC_CMD_ST_READ 0 ++#define NETSEC_GMAC_CMD_ST_WRITE BIT(28) ++#define NETSEC_GMAC_CMD_ST_BUSY BIT(31) ++ ++#define NETSEC_GMAC_BMR_REG_COMMON 0x00412080 ++#define NETSEC_GMAC_BMR_REG_RESET 0x00020181 ++#define NETSEC_GMAC_BMR_REG_SWR 0x00000001 ++ ++#define NETSEC_GMAC_OMR_REG_ST BIT(13) ++#define NETSEC_GMAC_OMR_REG_SR BIT(1) ++ ++#define NETSEC_GMAC_MCR_REG_IBN BIT(30) ++#define NETSEC_GMAC_MCR_REG_CST BIT(25) ++#define NETSEC_GMAC_MCR_REG_JE BIT(20) ++#define NETSEC_MCR_PS BIT(15) ++#define NETSEC_GMAC_MCR_REG_FES BIT(14) ++#define NETSEC_GMAC_MCR_REG_FULL_DUPLEX_COMMON 0x0000280c ++#define NETSEC_GMAC_MCR_REG_HALF_DUPLEX_COMMON 0x0001a00c ++ ++#define NETSEC_FCR_RFE BIT(2) ++#define NETSEC_FCR_TFE BIT(1) ++ ++#define NETSEC_GMAC_GAR_REG_GW BIT(1) ++#define NETSEC_GMAC_GAR_REG_GB BIT(0) ++ ++#define NETSEC_GMAC_GAR_REG_SHIFT_PA 11 ++#define NETSEC_GMAC_GAR_REG_SHIFT_GR 6 ++#define GMAC_REG_SHIFT_CR_GAR 2 ++ ++#define NETSEC_GMAC_GAR_REG_CR_25_35_MHZ 2 ++#define NETSEC_GMAC_GAR_REG_CR_35_60_MHZ 3 ++#define NETSEC_GMAC_GAR_REG_CR_60_100_MHZ 0 ++#define NETSEC_GMAC_GAR_REG_CR_100_150_MHZ 1 ++#define NETSEC_GMAC_GAR_REG_CR_150_250_MHZ 4 ++#define NETSEC_GMAC_GAR_REG_CR_250_300_MHZ 5 ++ ++#define NETSEC_GMAC_RDLAR_REG_COMMON 0x18000 ++#define NETSEC_GMAC_TDLAR_REG_COMMON 0x1c000 ++ ++#define NETSEC_REG_NETSEC_VER_F_TAIKI 0x50000 ++ ++#define NETSEC_REG_DESC_RING_CONFIG_CFG_UP BIT(31) ++#define NETSEC_REG_DESC_RING_CONFIG_CH_RST BIT(30) ++#define NETSEC_REG_DESC_TMR_MODE 4 ++#define NETSEC_REG_DESC_ENDIAN 0 ++ ++#define NETSEC_MAC_DESC_SOFT_RST_SOFT_RST 1 ++#define NETSEC_MAC_DESC_INIT_REG_INIT 1 ++ ++#define NETSEC_EEPROM_MAC_ADDRESS 0x00 ++#define NETSEC_EEPROM_HM_ME_ADDRESS_H 0x08 ++#define NETSEC_EEPROM_HM_ME_ADDRESS_L 0x0C ++#define NETSEC_EEPROM_HM_ME_SIZE 0x10 ++#define NETSEC_EEPROM_MH_ME_ADDRESS_H 0x14 ++#define NETSEC_EEPROM_MH_ME_ADDRESS_L 0x18 ++#define NETSEC_EEPROM_MH_ME_SIZE 0x1C ++#define NETSEC_EEPROM_PKT_ME_ADDRESS 0x20 ++#define NETSEC_EEPROM_PKT_ME_SIZE 0x24 ++ ++/* this is used to interpret a register layout */ ++struct netsec_pkt_ctrlaram { ++ u8 log_chksum_er_flag:1; ++ u8 log_hd_imcomplete_flag:1; ++ u8 log_hd_er_flag:1; ++}; ++ ++struct netsec_param { ++ struct netsec_pkt_ctrlaram pkt_ctrlaram; ++ bool use_jumbo_pkt_flag; ++}; ++ ++struct netsec_mac_mode { ++ u16 flow_start_th; ++ u16 flow_stop_th; ++ u16 pause_time; ++ bool flow_ctrl_enable_flag; ++}; ++ ++struct netsec_desc_ring { ++ spinlock_t spinlock_desc; /* protect descriptor access */ ++ phys_addr_t desc_phys; ++ struct netsec_frag_info *frag; ++ struct sk_buff **priv; ++ void *ring_vaddr; ++ enum netsec_rings id; ++ int len; ++ u16 tx_done_num; ++ u16 rx_num; ++ u16 head; ++ u16 tail; ++ bool running; ++ bool full; ++}; ++ ++struct netsec_frag_info { ++ dma_addr_t dma_addr; ++ void *addr; ++ u16 len; ++}; ++ ++struct netsec_priv { ++ struct netsec_desc_ring desc_ring[NETSEC_RING_MAX + 1]; ++ struct ethtool_coalesce et_coalesce; ++ struct netsec_mac_mode mac_mode; ++ struct netsec_param param; ++ struct napi_struct napi; ++ phy_interface_t phy_interface; ++ spinlock_t tx_queue_lock; /* protect transmit queue */ ++ struct netsec_frag_info tx_info[MAX_SKB_FRAGS]; ++ struct net_device *ndev; ++ struct device_node *phy_np; ++ struct phy_device *phydev; ++ struct mii_bus *mii_bus; ++ void __iomem *ioaddr; ++ const void *eeprom_base; ++ struct device *dev; ++ struct clk *clk[3]; ++ u32 rx_pkt_buf_len; ++ u32 msg_enable; ++ u32 freq; ++ int actual_link_speed; ++ int clock_count; ++ bool rx_cksum_offload_flag; ++ bool actual_duplex; ++ bool irq_registered; ++}; ++ ++struct netsec_tx_de { ++ u32 attr; ++ u32 data_buf_addr_up; ++ u32 data_buf_addr_lw; ++ u32 buf_len_info; ++}; ++ ++struct netsec_rx_de { ++ u32 attr; ++ u32 data_buf_addr_up; ++ u32 data_buf_addr_lw; ++ u32 buf_len_info; ++}; ++ ++struct netsec_tx_pkt_ctrl { ++ u16 tcp_seg_len; ++ bool tcp_seg_offload_flag; ++ bool cksum_offload_flag; ++}; ++ ++struct netsec_rx_pkt_info { ++ int rx_cksum_result; ++ int err_code; ++ bool is_fragmented; ++ bool err_flag; ++}; ++ ++struct netsec_skb_cb { ++ bool is_rx; ++}; ++ ++static inline void netsec_writel(struct netsec_priv *priv, ++ u32 reg_addr, u32 val) ++{ ++ writel_relaxed(val, priv->ioaddr + (reg_addr << 2)); ++} ++ ++static inline u32 netsec_readl(struct netsec_priv *priv, u32 reg_addr) ++{ ++ return readl_relaxed(priv->ioaddr + (reg_addr << 2)); ++} ++ ++static inline void netsec_mark_skb_type(struct sk_buff *skb, bool is_rx) ++{ ++ struct netsec_skb_cb *cb = (struct netsec_skb_cb *)skb->cb; ++ ++ cb->is_rx = is_rx; ++} ++ ++static inline bool skb_is_rx(struct sk_buff *skb) ++{ ++ struct netsec_skb_cb *cb = (struct netsec_skb_cb *)skb->cb; ++ ++ return cb->is_rx; ++} ++ ++extern const struct net_device_ops netsec_netdev_ops; ++extern const struct ethtool_ops netsec_ethtool_ops; ++ ++int netsec_start_gmac(struct netsec_priv *priv); ++int netsec_stop_gmac(struct netsec_priv *priv); ++int netsec_mii_register(struct netsec_priv *priv); ++void netsec_mii_unregister(struct netsec_priv *priv); ++int netsec_start_desc_ring(struct netsec_priv *priv, enum netsec_rings id); ++void netsec_stop_desc_ring(struct netsec_priv *priv, enum netsec_rings id); ++u16 netsec_get_rx_num(struct netsec_priv *priv); ++u16 netsec_get_tx_avail_num(struct netsec_priv *priv); ++int netsec_clean_tx_desc_ring(struct netsec_priv *priv); ++int netsec_clean_rx_desc_ring(struct netsec_priv *priv); ++int netsec_set_tx_pkt_data(struct netsec_priv *priv, ++ const struct netsec_tx_pkt_ctrl *tx_ctrl, ++ u8 count_frags, const struct netsec_frag_info *info, ++ struct sk_buff *skb); ++int netsec_get_rx_pkt_data(struct netsec_priv *priv, ++ struct netsec_rx_pkt_info *rxpi, ++ struct netsec_frag_info *frag, u16 *len, ++ struct sk_buff **skb); ++void netsec_ring_irq_enable(struct netsec_priv *priv, ++ enum netsec_rings id, u32 i); ++void netsec_ring_irq_disable(struct netsec_priv *priv, ++ enum netsec_rings id, u32 i); ++int netsec_alloc_desc_ring(struct netsec_priv *priv, enum netsec_rings id); ++void netsec_free_desc_ring(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc); ++int netsec_setup_rx_desc(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc); ++int netsec_netdev_napi_poll(struct napi_struct *napi_p, int budget); ++ ++#endif /* NETSEC_INTERNAL_H */ +diff --git a/drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c b/drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c +new file mode 100644 +index 0000000..a4e56cd +--- /dev/null ++++ b/drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c +@@ -0,0 +1,623 @@ ++/** ++ * drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c ++ * ++ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited. ++ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved. ++ * Andy Green ++ * Jassi Brar ++ * Ard Biesheuvel ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ */ ++ ++#include ++#include ++ ++#include "netsec.h" ++ ++static const u32 ads_irq_set[] = { ++ NETSEC_REG_NRM_TX_INTEN_SET, ++ NETSEC_REG_NRM_RX_INTEN_SET, ++}; ++ ++static const u32 desc_ring_irq_inten_clr_reg_addr[] = { ++ NETSEC_REG_NRM_TX_INTEN_CLR, ++ NETSEC_REG_NRM_RX_INTEN_CLR, ++}; ++ ++static const u32 int_tmr_reg_addr[] = { ++ NETSEC_REG_NRM_TX_TXINT_TMR, ++ NETSEC_REG_NRM_RX_RXINT_TMR, ++}; ++ ++static const u32 rx_pkt_cnt_reg_addr[] = { ++ 0, ++ NETSEC_REG_NRM_RX_PKTCNT, ++}; ++ ++static const u32 tx_pkt_cnt_reg_addr[] = { ++ NETSEC_REG_NRM_TX_PKTCNT, ++ 0, ++}; ++ ++static const u32 int_pkt_cnt_reg_addr[] = { ++ NETSEC_REG_NRM_TX_DONE_TXINT_PKTCNT, ++ NETSEC_REG_NRM_RX_RXINT_PKTCNT, ++}; ++ ++static const u32 tx_done_pkt_addr[] = { ++ NETSEC_REG_NRM_TX_DONE_PKTCNT, ++ 0, ++}; ++ ++static const u32 netsec_desc_mask[] = { ++ [NETSEC_RING_TX] = NETSEC_GMAC_OMR_REG_ST, ++ [NETSEC_RING_RX] = NETSEC_GMAC_OMR_REG_SR ++}; ++ ++void netsec_ring_irq_enable(struct netsec_priv *priv, ++ enum netsec_rings id, u32 irqf) ++{ ++ netsec_writel(priv, ads_irq_set[id], irqf); ++} ++ ++void netsec_ring_irq_disable(struct netsec_priv *priv, ++ enum netsec_rings id, u32 irqf) ++{ ++ netsec_writel(priv, desc_ring_irq_inten_clr_reg_addr[id], irqf); ++} ++ ++static struct sk_buff *alloc_rx_pkt_buf(struct netsec_priv *priv, ++ struct netsec_frag_info *info) ++{ ++ struct sk_buff *skb; ++ ++ if (device_get_dma_attr(priv->dev) == DEV_DMA_COHERENT) { ++ skb = netdev_alloc_skb_ip_align(priv->ndev, info->len); ++ } else { ++ info->len = L1_CACHE_ALIGN(info->len); ++ skb = netdev_alloc_skb(priv->ndev, info->len); ++ } ++ if (!skb) ++ return NULL; ++ ++ netsec_mark_skb_type(skb, NETSEC_RING_RX); ++ info->addr = skb->data; ++ info->dma_addr = dma_map_single(priv->dev, info->addr, info->len, ++ DMA_FROM_DEVICE); ++ if (dma_mapping_error(priv->dev, info->dma_addr)) { ++ dev_kfree_skb(skb); ++ return NULL; ++ } ++ return skb; ++} ++ ++int netsec_alloc_desc_ring(struct netsec_priv *priv, enum netsec_rings id) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[id]; ++ int ret = 0; ++ ++ desc->id = id; ++ desc->len = sizeof(struct netsec_tx_de); /* rx and tx desc same size */ ++ ++ spin_lock_init(&desc->spinlock_desc); ++ ++ desc->ring_vaddr = dma_zalloc_coherent(priv->dev, desc->len * DESC_NUM, ++ &desc->desc_phys, GFP_KERNEL); ++ if (!desc->ring_vaddr) { ++ ret = -ENOMEM; ++ goto err; ++ } ++ ++ desc->frag = kcalloc(DESC_NUM, sizeof(*desc->frag), GFP_KERNEL); ++ if (!desc->frag) { ++ ret = -ENOMEM; ++ goto err; ++ } ++ ++ desc->priv = kcalloc(DESC_NUM, sizeof(struct sk_buff *), GFP_KERNEL); ++ if (!desc->priv) { ++ ret = -ENOMEM; ++ goto err; ++ } ++ ++ return 0; ++ ++err: ++ netsec_free_desc_ring(priv, desc); ++ ++ return ret; ++} ++ ++static void netsec_uninit_pkt_desc_ring(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc) ++{ ++ struct netsec_frag_info *frag; ++ u32 status; ++ u16 idx; ++ ++ for (idx = 0; idx < DESC_NUM; idx++) { ++ frag = &desc->frag[idx]; ++ if (!frag->addr) ++ continue; ++ ++ status = *(u32 *)(desc->ring_vaddr + desc->len * idx); ++ ++ dma_unmap_single(priv->dev, frag->dma_addr, frag->len, ++ skb_is_rx(desc->priv[idx]) ? DMA_FROM_DEVICE : ++ DMA_TO_DEVICE); ++ if ((status >> NETSEC_TX_LAST) & 1) ++ dev_kfree_skb(desc->priv[idx]); ++ } ++ ++ memset(desc->frag, 0, sizeof(struct netsec_frag_info) * DESC_NUM); ++ memset(desc->priv, 0, sizeof(struct sk_buff *) * DESC_NUM); ++ memset(desc->ring_vaddr, 0, desc->len * DESC_NUM); ++} ++ ++void netsec_free_desc_ring(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc) ++{ ++ if (desc->ring_vaddr && desc->frag && desc->priv) ++ netsec_uninit_pkt_desc_ring(priv, desc); ++ ++ if (desc->ring_vaddr) { ++ dma_free_coherent(priv->dev, desc->len * DESC_NUM, ++ desc->ring_vaddr, desc->desc_phys); ++ desc->ring_vaddr = NULL; ++ } ++ kfree(desc->frag); ++ desc->frag = NULL; ++ kfree(desc->priv); ++ desc->priv = NULL; ++} ++ ++static void netsec_set_rx_de(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc, u16 idx, ++ const struct netsec_frag_info *info, ++ struct sk_buff *skb) ++{ ++ struct netsec_rx_de *de = desc->ring_vaddr + desc->len * idx; ++ u32 attr = (1 << NETSEC_RX_PKT_OWN_FIELD) | ++ (1 << NETSEC_RX_PKT_FS_FIELD) | ++ (1 << NETSEC_RX_PKT_LS_FIELD); ++ ++ if (idx == DESC_NUM - 1) ++ attr |= (1 << NETSEC_RX_PKT_LD_FIELD); ++ ++ de->data_buf_addr_up = upper_32_bits(info->dma_addr); ++ de->data_buf_addr_lw = lower_32_bits(info->dma_addr); ++ de->buf_len_info = info->len; ++ /* desc->attr makes the descriptor live, so it must be physically ++ * written last after the rest of the descriptor body is already there ++ */ ++ dma_wmb(); ++ de->attr = attr; ++ ++ desc->frag[idx].dma_addr = info->dma_addr; ++ desc->frag[idx].addr = info->addr; ++ desc->frag[idx].len = info->len; ++ ++ desc->priv[idx] = skb; ++} ++ ++int netsec_setup_rx_desc(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc) ++{ ++ struct netsec_frag_info info; ++ struct sk_buff *skb; ++ int n; ++ ++ info.len = priv->rx_pkt_buf_len; ++ ++ for (n = 0; n < DESC_NUM; n++) { ++ skb = alloc_rx_pkt_buf(priv, &info); ++ if (!skb) { ++ netsec_uninit_pkt_desc_ring(priv, desc); ++ return -ENOMEM; ++ } ++ netsec_set_rx_de(priv, desc, n, &info, skb); ++ } ++ ++ return 0; ++} ++ ++static void netsec_set_tx_desc_entry(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc, ++ const struct netsec_tx_pkt_ctrl *tx_ctrl, ++ bool first_flag, bool last_flag, ++ const struct netsec_frag_info *frag, ++ struct sk_buff *skb) ++{ ++ struct netsec_tx_de *tx_desc_entry; ++ int idx = desc->head; ++ u32 attr; ++ ++ tx_desc_entry = desc->ring_vaddr + (desc->len * idx); ++ ++ attr = (1 << NETSEC_TX_SHIFT_OWN_FIELD) | ++ (desc->id << NETSEC_TX_SHIFT_DRID_FIELD) | ++ (1 << NETSEC_TX_SHIFT_PT_FIELD) | ++ (NETSEC_RING_GMAC << NETSEC_TX_SHIFT_TDRID_FIELD) | ++ (first_flag << NETSEC_TX_SHIFT_FS_FIELD) | ++ (last_flag << NETSEC_TX_LAST) | ++ (tx_ctrl->cksum_offload_flag << NETSEC_TX_SHIFT_CO) | ++ (tx_ctrl->tcp_seg_offload_flag << NETSEC_TX_SHIFT_SO) | ++ (1 << NETSEC_TX_SHIFT_TRS_FIELD); ++ if (idx == DESC_NUM - 1) ++ attr |= (1 << NETSEC_TX_SHIFT_LD_FIELD); ++ ++ tx_desc_entry->data_buf_addr_up = upper_32_bits(frag->dma_addr); ++ tx_desc_entry->data_buf_addr_lw = lower_32_bits(frag->dma_addr); ++ tx_desc_entry->buf_len_info = (tx_ctrl->tcp_seg_len << 16) | frag->len; ++ /* desc->attr makes the descriptor live, so it must be physically ++ * written last after the rest of the descriptor body is already there ++ */ ++ dma_wmb(); ++ tx_desc_entry->attr = attr; ++ ++ desc->frag[idx] = *frag; ++ desc->priv[idx] = skb; ++} ++ ++static void netsec_get_rx_de(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc, u16 idx, ++ struct netsec_rx_pkt_info *rxpi, ++ struct netsec_frag_info *frag, u16 *len, ++ struct sk_buff **skb) ++{ ++ struct netsec_rx_de de = {}; ++ ++ *rxpi = (struct netsec_rx_pkt_info){}; ++ memcpy(&de, desc->ring_vaddr + desc->len * idx, desc->len); ++ ++ dev_dbg(priv->dev, "%08x\n", *(u32 *)&de); ++ *len = de.buf_len_info >> 16; ++ ++ rxpi->is_fragmented = (de.attr >> NETSEC_RX_PKT_FR_FIELD) & 1; ++ rxpi->err_flag = (de.attr >> NETSEC_RX_PKT_ER_FIELD) & 1; ++ rxpi->rx_cksum_result = (de.attr >> NETSEC_RX_PKT_CO_FIELD) & 3; ++ rxpi->err_code = (de.attr >> NETSEC_RX_PKT_ERR_FIELD) & ++ NETSEC_RX_PKT_ERR_MASK; ++ *frag = desc->frag[idx]; ++ *skb = desc->priv[idx]; ++} ++ ++static void netsec_inc_desc_head_idx(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc, u16 inc) ++{ ++ u32 sum; ++ ++ sum = desc->head + inc; ++ ++ if (sum >= DESC_NUM) ++ sum -= DESC_NUM; ++ ++ desc->head = sum; ++ desc->full = desc->head == desc->tail; ++} ++ ++static void netsec_inc_desc_tail_idx(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc) ++{ ++ u32 sum; ++ ++ sum = desc->tail + 1; ++ ++ if (sum >= DESC_NUM) ++ sum -= DESC_NUM; ++ ++ desc->tail = sum; ++ desc->full = false; ++} ++ ++static u16 netsec_get_tx_avail_num_sub(struct netsec_priv *priv, ++ const struct netsec_desc_ring *desc) ++{ ++ if (desc->full) ++ return 0; ++ ++ if (desc->tail > desc->head) ++ return desc->tail - desc->head; ++ ++ return DESC_NUM + desc->tail - desc->head; ++} ++ ++static u16 netsec_get_tx_done_num_sub(struct netsec_priv *priv, ++ struct netsec_desc_ring *desc) ++{ ++ desc->tx_done_num += netsec_readl(priv, tx_done_pkt_addr[desc->id]); ++ ++ return desc->tx_done_num; ++} ++ ++static int netsec_set_irq_coalesce_param(struct netsec_priv *priv, ++ enum netsec_rings id) ++{ ++ int max_frames, tmr; ++ ++ switch (id) { ++ case NETSEC_RING_TX: ++ max_frames = priv->et_coalesce.tx_max_coalesced_frames; ++ tmr = priv->et_coalesce.tx_coalesce_usecs; ++ break; ++ case NETSEC_RING_RX: ++ max_frames = priv->et_coalesce.rx_max_coalesced_frames; ++ tmr = priv->et_coalesce.rx_coalesce_usecs; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ netsec_writel(priv, int_pkt_cnt_reg_addr[id], max_frames); ++ netsec_writel(priv, int_tmr_reg_addr[id], ((tmr != 0) << 31) | tmr); ++ ++ return 0; ++} ++ ++int netsec_start_desc_ring(struct netsec_priv *priv, enum netsec_rings id) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[id]; ++ int ret = 0; ++ ++ spin_lock_bh(&desc->spinlock_desc); ++ ++ if (desc->running) { ++ ret = -EBUSY; ++ goto err; ++ } ++ ++ switch (desc->id) { ++ case NETSEC_RING_RX: ++ netsec_writel(priv, ads_irq_set[id], NETSEC_IRQ_RCV); ++ break; ++ case NETSEC_RING_TX: ++ netsec_writel(priv, ads_irq_set[id], NETSEC_IRQ_EMPTY); ++ break; ++ } ++ ++ netsec_set_irq_coalesce_param(priv, desc->id); ++ desc->running = true; ++ ++err: ++ spin_unlock_bh(&desc->spinlock_desc); ++ ++ return ret; ++} ++ ++void netsec_stop_desc_ring(struct netsec_priv *priv, enum netsec_rings id) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[id]; ++ ++ spin_lock_bh(&desc->spinlock_desc); ++ if (desc->running) ++ netsec_writel(priv, desc_ring_irq_inten_clr_reg_addr[id], ++ NETSEC_IRQ_RCV | NETSEC_IRQ_EMPTY | ++ NETSEC_IRQ_SND); ++ ++ desc->running = false; ++ spin_unlock_bh(&desc->spinlock_desc); ++} ++ ++u16 netsec_get_rx_num(struct netsec_priv *priv) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_RX]; ++ u32 result; ++ ++ spin_lock(&desc->spinlock_desc); ++ if (desc->running) { ++ result = netsec_readl(priv, ++ rx_pkt_cnt_reg_addr[NETSEC_RING_RX]); ++ desc->rx_num += result; ++ if (result) ++ netsec_inc_desc_head_idx(priv, desc, result); ++ } ++ spin_unlock(&desc->spinlock_desc); ++ ++ return desc->rx_num; ++} ++ ++u16 netsec_get_tx_avail_num(struct netsec_priv *priv) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_TX]; ++ u16 result; ++ ++ spin_lock(&desc->spinlock_desc); ++ ++ if (!desc->running) { ++ netif_err(priv, drv, priv->ndev, ++ "%s: not running tx desc\n", __func__); ++ result = 0; ++ goto err; ++ } ++ ++ result = netsec_get_tx_avail_num_sub(priv, desc); ++ ++err: ++ spin_unlock(&desc->spinlock_desc); ++ ++ return result; ++} ++ ++int netsec_clean_tx_desc_ring(struct netsec_priv *priv) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_TX]; ++ unsigned int pkts = 0, bytes = 0; ++ struct netsec_frag_info *frag; ++ struct netsec_tx_de *entry; ++ bool is_last; ++ ++ spin_lock(&desc->spinlock_desc); ++ ++ netsec_get_tx_done_num_sub(priv, desc); ++ ++ while ((desc->tail != desc->head || desc->full) && desc->tx_done_num) { ++ frag = &desc->frag[desc->tail]; ++ entry = desc->ring_vaddr + desc->len * desc->tail; ++ is_last = (entry->attr >> NETSEC_TX_LAST) & 1; ++ ++ dma_unmap_single(priv->dev, frag->dma_addr, frag->len, ++ DMA_TO_DEVICE); ++ if (is_last) { ++ pkts++; ++ bytes += desc->priv[desc->tail]->len; ++ dev_kfree_skb(desc->priv[desc->tail]); ++ } ++ *frag = (struct netsec_frag_info){}; ++ netsec_inc_desc_tail_idx(priv, desc); ++ ++ if (is_last) ++ desc->tx_done_num--; ++ } ++ ++ spin_unlock(&desc->spinlock_desc); ++ ++ priv->ndev->stats.tx_packets += pkts; ++ priv->ndev->stats.tx_bytes += bytes; ++ ++ netdev_completed_queue(priv->ndev, pkts, bytes); ++ ++ return 0; ++} ++ ++int netsec_clean_rx_desc_ring(struct netsec_priv *priv) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_RX]; ++ ++ spin_lock(&desc->spinlock_desc); ++ ++ while (desc->full || (desc->tail != desc->head)) { ++ netsec_set_rx_de(priv, desc, desc->tail, ++ &desc->frag[desc->tail], ++ desc->priv[desc->tail]); ++ desc->rx_num--; ++ netsec_inc_desc_tail_idx(priv, desc); ++ } ++ ++ spin_unlock(&desc->spinlock_desc); ++ ++ return 0; ++} ++ ++int netsec_set_tx_pkt_data(struct netsec_priv *priv, ++ const struct netsec_tx_pkt_ctrl *tx_ctrl, ++ u8 count_frags, const struct netsec_frag_info *info, ++ struct sk_buff *skb) ++{ ++ struct netsec_desc_ring *desc; ++ u32 sum_len = 0; ++ unsigned int i; ++ int ret = 0; ++ ++ if (tx_ctrl->tcp_seg_offload_flag && !tx_ctrl->cksum_offload_flag) ++ return -EINVAL; ++ ++ if (tx_ctrl->tcp_seg_offload_flag) { ++ if (tx_ctrl->tcp_seg_len == 0) ++ return -EINVAL; ++ ++ if (priv->param.use_jumbo_pkt_flag) { ++ if (tx_ctrl->tcp_seg_len > NETSEC_TCP_JUMBO_SEG_LEN_MAX) ++ return -EINVAL; ++ } else { ++ if (tx_ctrl->tcp_seg_len > NETSEC_TCP_SEG_LEN_MAX) ++ return -EINVAL; ++ } ++ } else { ++ if (tx_ctrl->tcp_seg_len) ++ return -EINVAL; ++ } ++ ++ if (!count_frags) ++ return -ERANGE; ++ ++ for (i = 0; i < count_frags; i++) { ++ if ((info[i].len == 0) || (info[i].len > 0xffff)) { ++ netif_err(priv, drv, priv->ndev, ++ "%s: bad info len\n", __func__); ++ return -EINVAL; ++ } ++ sum_len += info[i].len; ++ } ++ ++ if (!tx_ctrl->tcp_seg_offload_flag) { ++ if (priv->param.use_jumbo_pkt_flag) { ++ if (sum_len > NETSEC_MAX_TX_JUMBO_PKT_LEN) ++ return -EINVAL; ++ } else { ++ if (sum_len > NETSEC_MAX_TX_PKT_LEN) ++ return -EINVAL; ++ } ++ } ++ ++ desc = &priv->desc_ring[NETSEC_RING_TX]; ++ spin_lock(&desc->spinlock_desc); ++ ++ if (!desc->running) { ++ ret = -ENODEV; ++ goto end; ++ } ++ ++ dma_rmb(); /* we need to see a consistent view of pending tx count */ ++ if (count_frags > netsec_get_tx_avail_num_sub(priv, desc)) { ++ ret = -EBUSY; ++ goto end; ++ } ++ ++ for (i = 0; i < count_frags; i++) { ++ netsec_set_tx_desc_entry(priv, desc, tx_ctrl, i == 0, ++ i == count_frags - 1, &info[i], skb); ++ netsec_inc_desc_head_idx(priv, desc, 1); ++ } ++ ++ dma_wmb(); /* ensure the descriptor is flushed */ ++ netsec_writel(priv, tx_pkt_cnt_reg_addr[NETSEC_RING_TX], 1); ++ ++end: ++ spin_unlock(&desc->spinlock_desc); ++ ++ return ret; ++} ++ ++int netsec_get_rx_pkt_data(struct netsec_priv *priv, ++ struct netsec_rx_pkt_info *rxpi, ++ struct netsec_frag_info *frag, u16 *len, ++ struct sk_buff **skb) ++{ ++ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_RX]; ++ struct netsec_frag_info info; ++ struct sk_buff *tmp_skb; ++ int ret = 0; ++ ++ spin_lock(&desc->spinlock_desc); ++ ++ if (desc->rx_num == 0) { ++ dev_err(priv->dev, "%s 0 len rx\n", __func__); ++ ret = -EINVAL; ++ goto err; ++ } ++ ++ info.len = priv->rx_pkt_buf_len; ++ dma_rmb(); /* we need to ensure we only see current data in descriptor */ ++ tmp_skb = alloc_rx_pkt_buf(priv, &info); ++ if (!tmp_skb) { ++ netsec_set_rx_de(priv, desc, desc->tail, ++ &desc->frag[desc->tail], ++ desc->priv[desc->tail]); ++ ret = -ENOMEM; ++ } else { ++ netsec_get_rx_de(priv, desc, desc->tail, rxpi, frag, len, skb); ++ netsec_set_rx_de(priv, desc, desc->tail, &info, tmp_skb); ++ } ++ ++ netsec_inc_desc_tail_idx(priv, desc); ++ desc->rx_num--; ++ ++err: ++ spin_unlock(&desc->spinlock_desc); ++ ++ return ret; ++} +diff --git a/drivers/net/ethernet/socionext/netsec/netsec_ethtool.c b/drivers/net/ethernet/socionext/netsec/netsec_ethtool.c +new file mode 100644 +index 0000000..45830fe +--- /dev/null ++++ b/drivers/net/ethernet/socionext/netsec/netsec_ethtool.c +@@ -0,0 +1,78 @@ ++/** ++ * drivers/net/ethernet/socionext/netsec/netsec_ethtool.c ++ * ++ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited. ++ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved. ++ * Andy Green ++ * Jassi Brar ++ * Ard Biesheuvel ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ */ ++ ++#include "netsec.h" ++ ++static void netsec_et_get_drvinfo(struct net_device *net_device, ++ struct ethtool_drvinfo *info) ++{ ++ strlcpy(info->driver, "netsec", sizeof(info->driver)); ++ strlcpy(info->bus_info, dev_name(net_device->dev.parent), ++ sizeof(info->bus_info)); ++} ++ ++static int netsec_et_get_coalesce(struct net_device *net_device, ++ struct ethtool_coalesce *et_coalesce) ++{ ++ struct netsec_priv *priv = netdev_priv(net_device); ++ ++ *et_coalesce = priv->et_coalesce; ++ ++ return 0; ++} ++ ++static int netsec_et_set_coalesce(struct net_device *net_device, ++ struct ethtool_coalesce *et_coalesce) ++{ ++ struct netsec_priv *priv = netdev_priv(net_device); ++ ++ if (et_coalesce->rx_max_coalesced_frames > NETSEC_INT_PKTCNT_MAX) ++ return -EINVAL; ++ if (et_coalesce->tx_max_coalesced_frames > NETSEC_INT_PKTCNT_MAX) ++ return -EINVAL; ++ if (!et_coalesce->rx_max_coalesced_frames) ++ return -EINVAL; ++ if (!et_coalesce->tx_max_coalesced_frames) ++ return -EINVAL; ++ ++ priv->et_coalesce = *et_coalesce; ++ ++ return 0; ++} ++ ++static u32 netsec_et_get_msglevel(struct net_device *dev) ++{ ++ struct netsec_priv *priv = netdev_priv(dev); ++ ++ return priv->msg_enable; ++} ++ ++static void netsec_et_set_msglevel(struct net_device *dev, u32 datum) ++{ ++ struct netsec_priv *priv = netdev_priv(dev); ++ ++ priv->msg_enable = datum; ++} ++ ++const struct ethtool_ops netsec_ethtool_ops = { ++ .get_drvinfo = netsec_et_get_drvinfo, ++ .get_link_ksettings = phy_ethtool_get_link_ksettings, ++ .set_link_ksettings = phy_ethtool_set_link_ksettings, ++ .get_link = ethtool_op_get_link, ++ .get_coalesce = netsec_et_get_coalesce, ++ .set_coalesce = netsec_et_set_coalesce, ++ .get_msglevel = netsec_et_get_msglevel, ++ .set_msglevel = netsec_et_set_msglevel, ++}; +diff --git a/drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c b/drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c +new file mode 100644 +index 0000000..94e9b7f +--- /dev/null ++++ b/drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c +@@ -0,0 +1,330 @@ ++/** ++ * drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c ++ * ++ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited. ++ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved. ++ * Andy Green ++ * Jassi Brar ++ * Ard Biesheuvel ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ */ ++#include "netsec.h" ++ ++#define TIMEOUT_SPINS_MAC 1000 ++#define TIMEOUT_SECONDARY_MS_MAC 100 ++ ++static u32 netsec_clk_type(u32 freq) ++{ ++ if (freq < 35 * NETSEC_CLK_MHZ) ++ return NETSEC_GMAC_GAR_REG_CR_25_35_MHZ; ++ if (freq < 60 * NETSEC_CLK_MHZ) ++ return NETSEC_GMAC_GAR_REG_CR_35_60_MHZ; ++ if (freq < 100 * NETSEC_CLK_MHZ) ++ return NETSEC_GMAC_GAR_REG_CR_60_100_MHZ; ++ if (freq < 150 * NETSEC_CLK_MHZ) ++ return NETSEC_GMAC_GAR_REG_CR_100_150_MHZ; ++ if (freq < 250 * NETSEC_CLK_MHZ) ++ return NETSEC_GMAC_GAR_REG_CR_150_250_MHZ; ++ ++ return NETSEC_GMAC_GAR_REG_CR_250_300_MHZ; ++} ++ ++static int netsec_wait_while_busy(struct netsec_priv *priv, u32 addr, u32 mask) ++{ ++ u32 timeout = TIMEOUT_SPINS_MAC; ++ ++ while (--timeout && netsec_readl(priv, addr) & mask) ++ cpu_relax(); ++ if (timeout) ++ return 0; ++ ++ timeout = TIMEOUT_SECONDARY_MS_MAC; ++ while (--timeout && netsec_readl(priv, addr) & mask) ++ usleep_range(1000, 2000); ++ ++ if (timeout) ++ return 0; ++ ++ netdev_WARN(priv->ndev, "%s: timeout\n", __func__); ++ ++ return -ETIMEDOUT; ++} ++ ++static int netsec_mac_write(struct netsec_priv *priv, u32 addr, u32 value) ++{ ++ netsec_writel(priv, MAC_REG_DATA, value); ++ netsec_writel(priv, MAC_REG_CMD, addr | NETSEC_GMAC_CMD_ST_WRITE); ++ return netsec_wait_while_busy(priv, ++ MAC_REG_CMD, NETSEC_GMAC_CMD_ST_BUSY); ++} ++ ++static int netsec_mac_read(struct netsec_priv *priv, u32 addr, u32 *read) ++{ ++ int ret; ++ ++ netsec_writel(priv, MAC_REG_CMD, addr | NETSEC_GMAC_CMD_ST_READ); ++ ret = netsec_wait_while_busy(priv, ++ MAC_REG_CMD, NETSEC_GMAC_CMD_ST_BUSY); ++ if (ret) ++ return ret; ++ ++ *read = netsec_readl(priv, MAC_REG_DATA); ++ ++ return 0; ++} ++ ++static int netsec_mac_wait_while_busy(struct netsec_priv *priv, ++ u32 addr, u32 mask) ++{ ++ u32 timeout = TIMEOUT_SPINS_MAC; ++ int ret, data; ++ ++ do { ++ ret = netsec_mac_read(priv, addr, &data); ++ if (ret) ++ break; ++ cpu_relax(); ++ } while (--timeout && (data & mask)); ++ ++ if (timeout) ++ return 0; ++ ++ timeout = TIMEOUT_SECONDARY_MS_MAC; ++ do { ++ usleep_range(1000, 2000); ++ ++ ret = netsec_mac_read(priv, addr, &data); ++ if (ret) ++ break; ++ cpu_relax(); ++ } while (--timeout && (data & mask)); ++ ++ if (timeout && !ret) ++ return 0; ++ ++ netdev_WARN(priv->ndev, "%s: timeout\n", __func__); ++ ++ return -ETIMEDOUT; ++} ++ ++static int netsec_mac_update_to_phy_state(struct netsec_priv *priv) ++{ ++ struct phy_device *phydev = priv->ndev->phydev; ++ u32 value = 0; ++ ++ value = phydev->duplex ? NETSEC_GMAC_MCR_REG_FULL_DUPLEX_COMMON : ++ NETSEC_GMAC_MCR_REG_HALF_DUPLEX_COMMON; ++ ++ if (phydev->speed != SPEED_1000) ++ value |= NETSEC_MCR_PS; ++ ++ if ((priv->phy_interface != PHY_INTERFACE_MODE_GMII) && ++ (phydev->speed == SPEED_100)) ++ value |= NETSEC_GMAC_MCR_REG_FES; ++ ++ value |= NETSEC_GMAC_MCR_REG_CST | NETSEC_GMAC_MCR_REG_JE; ++ ++ if (priv->phy_interface == PHY_INTERFACE_MODE_RGMII) ++ value |= NETSEC_GMAC_MCR_REG_IBN; ++ ++ if (netsec_mac_write(priv, GMAC_REG_MCR, value)) ++ return -ETIMEDOUT; ++ ++ priv->actual_link_speed = phydev->speed; ++ priv->actual_duplex = phydev->duplex; ++ ++ return 0; ++} ++ ++/* NB netsec_start_gmac() only called from adjust_link */ ++ ++int netsec_start_gmac(struct netsec_priv *priv) ++{ ++ struct phy_device *phydev = priv->ndev->phydev; ++ u32 value = 0; ++ int ret; ++ ++ if (priv->desc_ring[NETSEC_RING_TX].running && ++ priv->desc_ring[NETSEC_RING_RX].running) ++ return 0; ++ ++ if (!priv->desc_ring[NETSEC_RING_RX].running && ++ !priv->desc_ring[NETSEC_RING_TX].running) { ++ if (phydev->speed != SPEED_1000) ++ value = (NETSEC_GMAC_MCR_REG_CST | ++ NETSEC_GMAC_MCR_REG_HALF_DUPLEX_COMMON); ++ ++ if (netsec_mac_write(priv, GMAC_REG_MCR, value)) ++ return -ETIMEDOUT; ++ if (netsec_mac_write(priv, GMAC_REG_BMR, ++ NETSEC_GMAC_BMR_REG_RESET)) ++ return -ETIMEDOUT; ++ ++ /* Wait soft reset */ ++ usleep_range(1000, 5000); ++ ++ ret = netsec_mac_read(priv, GMAC_REG_BMR, &value); ++ if (ret) ++ return ret; ++ if (value & NETSEC_GMAC_BMR_REG_SWR) ++ return -EAGAIN; ++ ++ netsec_writel(priv, MAC_REG_DESC_SOFT_RST, 1); ++ if (netsec_wait_while_busy(priv, MAC_REG_DESC_SOFT_RST, 1)) ++ return -ETIMEDOUT; ++ ++ netsec_writel(priv, MAC_REG_DESC_INIT, 1); ++ if (netsec_wait_while_busy(priv, MAC_REG_DESC_INIT, 1)) ++ return -ETIMEDOUT; ++ ++ if (netsec_mac_write(priv, GMAC_REG_BMR, ++ NETSEC_GMAC_BMR_REG_COMMON)) ++ return -ETIMEDOUT; ++ if (netsec_mac_write(priv, GMAC_REG_RDLAR, ++ NETSEC_GMAC_RDLAR_REG_COMMON)) ++ return -ETIMEDOUT; ++ if (netsec_mac_write(priv, GMAC_REG_TDLAR, ++ NETSEC_GMAC_TDLAR_REG_COMMON)) ++ return -ETIMEDOUT; ++ if (netsec_mac_write(priv, GMAC_REG_MFFR, 0x80000001)) ++ return -ETIMEDOUT; ++ ++ ret = netsec_mac_update_to_phy_state(priv); ++ if (ret) ++ return ret; ++ ++ if (priv->mac_mode.flow_ctrl_enable_flag) { ++ netsec_writel(priv, MAC_REG_FLOW_TH, ++ (priv->mac_mode.flow_stop_th << 16) | ++ priv->mac_mode.flow_start_th); ++ if (netsec_mac_write(priv, GMAC_REG_FCR, ++ (priv->mac_mode.pause_time << 16) | ++ NETSEC_FCR_RFE | NETSEC_FCR_TFE)) ++ return -ETIMEDOUT; ++ } ++ } ++ ++ ret = netsec_mac_read(priv, GMAC_REG_OMR, &value); ++ if (ret) ++ return ret; ++ ++ if (!priv->desc_ring[NETSEC_RING_RX].running) { ++ value |= NETSEC_GMAC_OMR_REG_SR; ++ netsec_start_desc_ring(priv, NETSEC_RING_RX); ++ } ++ if (!priv->desc_ring[NETSEC_RING_TX].running) { ++ value |= NETSEC_GMAC_OMR_REG_ST; ++ netsec_start_desc_ring(priv, NETSEC_RING_TX); ++ } ++ ++ if (netsec_mac_write(priv, GMAC_REG_OMR, value)) ++ return -ETIMEDOUT; ++ ++ netsec_writel(priv, NETSEC_REG_INTEN_SET, ++ NETSEC_IRQ_TX | NETSEC_IRQ_RX); ++ ++ return 0; ++} ++ ++int netsec_stop_gmac(struct netsec_priv *priv) ++{ ++ u32 value; ++ int ret; ++ ++ ret = netsec_mac_read(priv, GMAC_REG_OMR, &value); ++ if (ret) ++ return ret; ++ ++ if (priv->desc_ring[NETSEC_RING_RX].running) { ++ value &= ~NETSEC_GMAC_OMR_REG_SR; ++ netsec_stop_desc_ring(priv, NETSEC_RING_RX); ++ } ++ if (priv->desc_ring[NETSEC_RING_TX].running) { ++ value &= ~NETSEC_GMAC_OMR_REG_ST; ++ netsec_stop_desc_ring(priv, NETSEC_RING_TX); ++ } ++ ++ priv->actual_link_speed = 0; ++ priv->actual_duplex = false; ++ ++ return netsec_mac_write(priv, GMAC_REG_OMR, value); ++} ++ ++static int netsec_phy_write(struct mii_bus *bus, ++ int phy_addr, int reg, u16 val) ++{ ++ struct netsec_priv *priv = bus->priv; ++ ++ if (netsec_mac_write(priv, GMAC_REG_GDR, val)) ++ return -ETIMEDOUT; ++ if (netsec_mac_write(priv, GMAC_REG_GAR, ++ phy_addr << NETSEC_GMAC_GAR_REG_SHIFT_PA | ++ reg << NETSEC_GMAC_GAR_REG_SHIFT_GR | ++ NETSEC_GMAC_GAR_REG_GW | NETSEC_GMAC_GAR_REG_GB | ++ (netsec_clk_type(priv->freq) << ++ GMAC_REG_SHIFT_CR_GAR))) ++ return -ETIMEDOUT; ++ ++ return netsec_mac_wait_while_busy(priv, GMAC_REG_GAR, ++ NETSEC_GMAC_GAR_REG_GB); ++} ++ ++static int netsec_phy_read(struct mii_bus *bus, int phy_addr, int reg_addr) ++{ ++ struct netsec_priv *priv = bus->priv; ++ u32 data; ++ int ret; ++ ++ if (netsec_mac_write(priv, GMAC_REG_GAR, NETSEC_GMAC_GAR_REG_GB | ++ phy_addr << NETSEC_GMAC_GAR_REG_SHIFT_PA | ++ reg_addr << NETSEC_GMAC_GAR_REG_SHIFT_GR | ++ (netsec_clk_type(priv->freq) << ++ GMAC_REG_SHIFT_CR_GAR))) ++ return -ETIMEDOUT; ++ ++ ret = netsec_mac_wait_while_busy(priv, GMAC_REG_GAR, ++ NETSEC_GMAC_GAR_REG_GB); ++ if (ret) ++ return ret; ++ ++ ret = netsec_mac_read(priv, GMAC_REG_GDR, &data); ++ if (ret) ++ return ret; ++ ++ return data; ++} ++ ++int netsec_mii_register(struct netsec_priv *priv) ++{ ++ struct mii_bus *bus = devm_mdiobus_alloc(priv->dev); ++ int ret; ++ ++ if (!bus) ++ return -ENOMEM; ++ ++ snprintf(bus->id, MII_BUS_ID_SIZE, "%s", dev_name(priv->dev)); ++ bus->priv = priv; ++ bus->name = "SNI NETSEC MDIO"; ++ bus->read = netsec_phy_read; ++ bus->write = netsec_phy_write; ++ bus->parent = priv->dev; ++ priv->mii_bus = bus; ++ ++ if (dev_of_node(priv->dev)) { ++ ret = of_mdiobus_register(bus, dev_of_node(priv->dev)); ++ } else { ++ /* Mask out all PHYs from auto probing. */ ++ bus->phy_mask = ~0; ++ ret = mdiobus_register(bus); ++ } ++ return ret; ++} ++ ++void netsec_mii_unregister(struct netsec_priv *priv) ++{ ++ mdiobus_unregister(priv->mii_bus); ++} +diff --git a/drivers/net/ethernet/socionext/netsec/netsec_netdev.c b/drivers/net/ethernet/socionext/netsec/netsec_netdev.c +new file mode 100644 +index 0000000..e99cf0e +--- /dev/null ++++ b/drivers/net/ethernet/socionext/netsec/netsec_netdev.c +@@ -0,0 +1,540 @@ ++/** ++ * drivers/net/ethernet/socionext/netsec/netsec_netdev.c ++ * ++ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited. ++ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved. ++ * Andy Green ++ * Jassi Brar ++ * Ard Biesheuvel ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "netsec.h" ++ ++#define WAIT_FW_RDY_TIMEOUT 50 ++ ++static const u32 desc_ring_irq_status_reg_addr[] = { ++ NETSEC_REG_NRM_TX_STATUS, ++ NETSEC_REG_NRM_RX_STATUS, ++}; ++ ++static const u32 desc_ads[] = { ++ NETSEC_REG_NRM_TX_CONFIG, ++ NETSEC_REG_NRM_RX_CONFIG, ++}; ++ ++static const u32 netsec_desc_start_reg_addr_up[] = { ++ NETSEC_REG_NRM_TX_DESC_START_UP, ++ NETSEC_REG_NRM_RX_DESC_START_UP, ++}; ++ ++static const u32 netsec_desc_start_reg_addr_lw[] = { ++ NETSEC_REG_NRM_TX_DESC_START_LW, ++ NETSEC_REG_NRM_RX_DESC_START_LW, ++}; ++ ++static u32 netsec_calc_pkt_ctrl_reg_param(const struct netsec_pkt_ctrlaram ++ *pkt_ctrlaram_p) ++{ ++ u32 param = NETSEC_PKT_CTRL_REG_MODE_NRM; ++ ++ if (pkt_ctrlaram_p->log_chksum_er_flag) ++ param |= NETSEC_PKT_CTRL_REG_LOG_CHKSUM_ER; ++ ++ if (pkt_ctrlaram_p->log_hd_imcomplete_flag) ++ param |= NETSEC_PKT_CTRL_REG_LOG_HD_INCOMPLETE; ++ ++ if (pkt_ctrlaram_p->log_hd_er_flag) ++ param |= NETSEC_PKT_CTRL_REG_LOG_HD_ER; ++ ++ return param; ++} ++ ++static int netsec_netdev_load_ucode_region(struct netsec_priv *priv, u32 reg, ++ u32 addr_h, u32 addr_l, u32 size) ++{ ++ u64 base = (u64)addr_h << 32 | addr_l; ++ __le32 *ucode; ++ u32 i; ++ ++ ucode = memremap(base, size * sizeof(u32), MEMREMAP_WT); ++ if (!ucode) ++ return -ENOMEM; ++ ++ for (i = 0; i < size; i++) ++ netsec_writel(priv, reg, le32_to_cpu(ucode[i])); ++ ++ memunmap(ucode); ++ return 0; ++} ++ ++static int netsec_netdev_load_microcode(struct netsec_priv *priv) ++{ ++ int err; ++ ++ err = netsec_netdev_load_ucode_region( ++ priv, NETSEC_REG_DMAC_HM_CMD_BUF, ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_HM_ME_ADDRESS_H), ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_HM_ME_ADDRESS_L), ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_HM_ME_SIZE)); ++ if (err) ++ return err; ++ ++ err = netsec_netdev_load_ucode_region( ++ priv, NETSEC_REG_DMAC_MH_CMD_BUF, ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_MH_ME_ADDRESS_H), ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_MH_ME_ADDRESS_L), ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_MH_ME_SIZE)); ++ if (err) ++ return err; ++ ++ err = netsec_netdev_load_ucode_region( ++ priv, NETSEC_REG_PKT_CMD_BUF, ++ 0, ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_PKT_ME_ADDRESS), ++ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_PKT_ME_SIZE)); ++ if (err) ++ return err; ++ ++ return 0; ++} ++ ++static int netsec_init_hardware(struct netsec_priv *priv) ++{ ++ u32 value; ++ int err; ++ ++ /* set desc_start addr */ ++ netsec_writel(priv, netsec_desc_start_reg_addr_up[NETSEC_RING_RX], ++ upper_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys)); ++ netsec_writel(priv, netsec_desc_start_reg_addr_lw[NETSEC_RING_RX], ++ lower_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys)); ++ ++ netsec_writel(priv, netsec_desc_start_reg_addr_up[NETSEC_RING_TX], ++ upper_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys)); ++ netsec_writel(priv, netsec_desc_start_reg_addr_lw[NETSEC_RING_TX], ++ lower_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys)); ++ ++ /* set normal tx desc ring config */ ++ netsec_writel(priv, desc_ads[NETSEC_RING_TX], ++ 1 << NETSEC_REG_DESC_ENDIAN); ++ netsec_writel(priv, desc_ads[NETSEC_RING_RX], ++ 1 << NETSEC_REG_DESC_ENDIAN); ++ ++ err = netsec_netdev_load_microcode(priv); ++ if (err) { ++ netif_err(priv, probe, priv->ndev, ++ "%s: failed to load microcode (%d)\n", __func__, err); ++ return err; ++ } ++ ++ /* start DMA engines */ ++ netsec_writel(priv, NETSEC_REG_DMA_TMR_CTRL, priv->freq / 1000000 - 1); ++ netsec_writel(priv, NETSEC_REG_ADDR_DIS_CORE, 0); ++ ++ usleep_range(1000, 2000); ++ ++ if (!(netsec_readl(priv, NETSEC_REG_TOP_STATUS) & ++ NETSEC_TOP_IRQ_REG_CODE_LOAD_END)) { ++ netif_err(priv, drv, priv->ndev, "microengine start failed\n"); ++ return -ENXIO; ++ } ++ netsec_writel(priv, NETSEC_REG_TOP_STATUS, ++ NETSEC_TOP_IRQ_REG_CODE_LOAD_END); ++ ++ value = netsec_calc_pkt_ctrl_reg_param(&priv->param.pkt_ctrlaram); ++ ++ if (priv->param.use_jumbo_pkt_flag) ++ value |= NETSEC_PKT_CTRL_REG_EN_JUMBO; ++ ++ /* change to normal mode */ ++ netsec_writel(priv, NETSEC_REG_DMA_MH_CTRL, MH_CTRL__MODE_TRANS); ++ netsec_writel(priv, NETSEC_REG_PKT_CTRL, value); ++ ++ while ((netsec_readl(priv, NETSEC_REG_MODE_TRANS_COMP_STATUS) & ++ NETSEC_MODE_TRANS_COMP_IRQ_T2N) == 0) ++ cpu_relax(); ++ ++ return 0; ++} ++ ++static void netsec_ring_irq_clr(struct netsec_priv *priv, ++ unsigned int id, u32 value) ++{ ++ netsec_writel(priv, desc_ring_irq_status_reg_addr[id], ++ value & (NETSEC_IRQ_EMPTY | NETSEC_IRQ_ERR)); ++} ++ ++static void netsec_napi_tx_processing(struct netsec_priv *priv) ++{ ++ netsec_ring_irq_clr(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY); ++ netsec_clean_tx_desc_ring(priv); ++ ++ if (netif_queue_stopped(priv->ndev) && ++ netsec_get_tx_avail_num(priv) >= NETSEC_NETDEV_TX_PKT_SCAT_NUM_MAX) ++ netif_wake_queue(priv->ndev); ++} ++ ++int netsec_netdev_napi_poll(struct napi_struct *napi_p, int budget) ++{ ++ struct netsec_priv *priv = container_of(napi_p, struct netsec_priv, ++ napi); ++ struct net_device *ndev = priv->ndev; ++ struct netsec_rx_pkt_info rx_info; ++ int ret, done = 0, rx_num = 0; ++ struct netsec_frag_info frag; ++ struct sk_buff *skb; ++ u16 len; ++ ++ netsec_napi_tx_processing(priv); ++ ++ while (done < budget) { ++ if (!rx_num) { ++ rx_num = netsec_get_rx_num(priv); ++ if (!rx_num) ++ break; ++ } ++ done++; ++ rx_num--; ++ ret = netsec_get_rx_pkt_data(priv, &rx_info, &frag, &len, &skb); ++ if (unlikely(ret == -ENOMEM)) { ++ netif_err(priv, drv, priv->ndev, ++ "%s: rx fail %d\n", __func__, ret); ++ ndev->stats.rx_dropped++; ++ continue; ++ } ++ dma_unmap_single(priv->dev, frag.dma_addr, frag.len, ++ DMA_FROM_DEVICE); ++ skb_put(skb, len); ++ skb->protocol = eth_type_trans(skb, priv->ndev); ++ ++ if (priv->rx_cksum_offload_flag && ++ rx_info.rx_cksum_result == NETSEC_RX_CKSUM_OK) ++ skb->ip_summed = CHECKSUM_UNNECESSARY; ++ ++ if (napi_gro_receive(napi_p, skb) != GRO_DROP) { ++ ndev->stats.rx_packets++; ++ ndev->stats.rx_bytes += len; ++ } ++ } ++ ++ if (done < budget && napi_complete_done(napi_p, done)) ++ netsec_writel(priv, NETSEC_REG_INTEN_SET, ++ NETSEC_IRQ_TX | NETSEC_IRQ_RX); ++ return done; ++} ++ ++static netdev_tx_t netsec_netdev_start_xmit(struct sk_buff *skb, ++ struct net_device *ndev) ++{ ++ struct netsec_priv *priv = netdev_priv(ndev); ++ struct netsec_tx_pkt_ctrl tx_ctrl = {}; ++ u16 pend_tx, tso_seg_len = 0; ++ skb_frag_t *frag; ++ int count_frags; ++ int ret, i; ++ ++ netsec_ring_irq_clr(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY); ++ ++ count_frags = skb_shinfo(skb)->nr_frags + 1; ++ ++ if (skb->ip_summed == CHECKSUM_PARTIAL) { ++ if ((skb->protocol == htons(ETH_P_IP) && ++ ip_hdr(skb)->protocol == IPPROTO_TCP) || ++ (skb->protocol == htons(ETH_P_IPV6) && ++ ipv6_hdr(skb)->nexthdr == IPPROTO_TCP)) ++ tx_ctrl.cksum_offload_flag = true; ++ else ++ skb_checksum_help(skb); ++ } ++ ++ if (skb_is_gso(skb)) ++ tso_seg_len = skb_shinfo(skb)->gso_size; ++ ++ if (tso_seg_len > 0) { ++ if (skb->protocol == htons(ETH_P_IP)) { ++ ip_hdr(skb)->tot_len = 0; ++ tcp_hdr(skb)->check = ++ ~tcp_v4_check(0, ip_hdr(skb)->saddr, ++ ip_hdr(skb)->daddr, 0); ++ } else { ++ ipv6_hdr(skb)->payload_len = 0; ++ tcp_hdr(skb)->check = ++ ~csum_ipv6_magic(&ipv6_hdr(skb)->saddr, ++ &ipv6_hdr(skb)->daddr, ++ 0, IPPROTO_TCP, 0); ++ } ++ ++ tx_ctrl.tcp_seg_offload_flag = true; ++ tx_ctrl.tcp_seg_len = tso_seg_len; ++ } ++ ++ priv->tx_info[0].dma_addr = dma_map_single(priv->dev, skb->data, ++ skb_headlen(skb), ++ DMA_TO_DEVICE); ++ if (dma_mapping_error(priv->dev, priv->tx_info[0].dma_addr)) { ++ netif_err(priv, drv, priv->ndev, ++ "%s: DMA mapping failed\n", __func__); ++ return NETDEV_TX_OK; ++ } ++ priv->tx_info[0].addr = skb->data; ++ priv->tx_info[0].len = skb_headlen(skb); ++ ++ for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { ++ frag = &skb_shinfo(skb)->frags[i]; ++ priv->tx_info[i + 1].dma_addr = ++ skb_frag_dma_map(priv->dev, frag, 0, ++ skb_frag_size(frag), DMA_TO_DEVICE); ++ priv->tx_info[i + 1].addr = skb_frag_address(frag); ++ priv->tx_info[i + 1].len = frag->size; ++ } ++ ++ netsec_mark_skb_type(skb, NETSEC_RING_TX); ++ ++ ret = netsec_set_tx_pkt_data(priv, &tx_ctrl, count_frags, ++ priv->tx_info, skb); ++ if (ret) { ++ netif_info(priv, drv, priv->ndev, ++ "set tx pkt failed %d\n", ret); ++ for (i = 0; i < count_frags; i++) ++ dma_unmap_single(priv->dev, priv->tx_info[i].dma_addr, ++ priv->tx_info[i].len, DMA_TO_DEVICE); ++ ndev->stats.tx_dropped++; ++ ++ return NETDEV_TX_OK; ++ } ++ ++ netdev_sent_queue(priv->ndev, skb->len); ++ ++ spin_lock(&priv->tx_queue_lock); ++ pend_tx = netsec_get_tx_avail_num(priv); ++ ++ if (pend_tx < NETSEC_NETDEV_TX_PKT_SCAT_NUM_MAX) { ++ netsec_ring_irq_enable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY); ++ netif_stop_queue(ndev); ++ goto err; ++ } ++ if (pend_tx <= DESC_NUM - 2) { ++ netsec_ring_irq_enable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY); ++ goto err; ++ } ++ netsec_ring_irq_disable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY); ++ ++err: ++ spin_unlock(&priv->tx_queue_lock); ++ ++ return NETDEV_TX_OK; ++} ++ ++static int netsec_netdev_set_features(struct net_device *ndev, ++ netdev_features_t features) ++{ ++ struct netsec_priv *priv = netdev_priv(ndev); ++ ++ priv->rx_cksum_offload_flag = !!(features & NETIF_F_RXCSUM); ++ ++ return 0; ++} ++ ++static void netsec_phy_adjust_link(struct net_device *ndev) ++{ ++ struct netsec_priv *priv = netdev_priv(ndev); ++ ++ if (priv->actual_link_speed == ndev->phydev->speed && ++ priv->actual_duplex == ndev->phydev->duplex) ++ return; ++ ++ phy_print_status(ndev->phydev); ++ ++ netsec_stop_gmac(priv); ++ netsec_start_gmac(priv); ++} ++ ++static irqreturn_t netsec_irq_handler(int irq, void *dev_id) ++{ ++ struct netsec_priv *priv = dev_id; ++ u32 status = netsec_readl(priv, NETSEC_REG_TOP_STATUS) & ++ netsec_readl(priv, NETSEC_REG_TOP_INTEN); ++ ++ if (!status) ++ return IRQ_NONE; ++ ++ if (status & (NETSEC_IRQ_TX | NETSEC_IRQ_RX)) { ++ netsec_writel(priv, NETSEC_REG_INTEN_CLR, ++ status & (NETSEC_IRQ_TX | NETSEC_IRQ_RX)); ++ napi_schedule(&priv->napi); ++ } ++ ++ return IRQ_HANDLED; ++} ++ ++static void netsec_reset_hardware(struct netsec_priv *priv) ++{ ++ /* stop DMA engines */ ++ if (!netsec_readl(priv, NETSEC_REG_ADDR_DIS_CORE)) { ++ netsec_writel(priv, NETSEC_REG_DMA_HM_CTRL, ++ NETSEC_DMA_CTRL_REG_STOP); ++ netsec_writel(priv, NETSEC_REG_DMA_MH_CTRL, ++ NETSEC_DMA_CTRL_REG_STOP); ++ ++ while (netsec_readl(priv, NETSEC_REG_DMA_HM_CTRL) & ++ NETSEC_DMA_CTRL_REG_STOP) ++ cpu_relax(); ++ ++ while (netsec_readl(priv, NETSEC_REG_DMA_MH_CTRL) & ++ NETSEC_DMA_CTRL_REG_STOP) ++ cpu_relax(); ++ } ++ ++ netsec_writel(priv, NETSEC_REG_SOFT_RST, NETSEC_SOFT_RST_REG_RESET); ++ netsec_writel(priv, NETSEC_REG_SOFT_RST, NETSEC_SOFT_RST_REG_RUN); ++ netsec_writel(priv, NETSEC_REG_COM_INIT, NETSEC_COM_INIT_REG_ALL); ++ ++ while (netsec_readl(priv, NETSEC_REG_COM_INIT) != 0) ++ cpu_relax(); ++} ++ ++static int netsec_netdev_open(struct net_device *ndev) ++{ ++ struct netsec_priv *priv = netdev_priv(ndev); ++ int ret, n; ++ ++ pm_runtime_get_sync(priv->dev); ++ ++ netsec_reset_hardware(priv); ++ ++ for (n = 0; n <= NETSEC_RING_MAX; n++) { ++ ret = netsec_alloc_desc_ring(priv, n); ++ if (ret) { ++ netif_err(priv, probe, priv->ndev, ++ "%s: alloc ring failed\n", __func__); ++ goto err; ++ } ++ } ++ ++ ret = netsec_setup_rx_desc(priv, &priv->desc_ring[NETSEC_RING_RX]); ++ if (ret) { ++ netif_err(priv, probe, priv->ndev, ++ "%s: fail setup ring\n", __func__); ++ goto err1; ++ } ++ ++ ret = netsec_init_hardware(priv); ++ if (ret) { ++ netif_err(priv, probe, priv->ndev, ++ "%s: netsec_init_hardware fail %d\n", __func__, ret); ++ goto err1; ++ } ++ ++ ret = request_irq(priv->ndev->irq, netsec_irq_handler, ++ IRQF_SHARED, "netsec", priv); ++ if (ret) { ++ netif_err(priv, drv, priv->ndev, "request_irq failed\n"); ++ goto err1; ++ } ++ priv->irq_registered = true; ++ ++ ret = netsec_clean_rx_desc_ring(priv); ++ if (ret) { ++ netif_err(priv, drv, priv->ndev, ++ "%s: clean rx desc fail\n", __func__); ++ goto err2; ++ } ++ ++ ret = netsec_clean_tx_desc_ring(priv); ++ if (ret) { ++ netif_err(priv, drv, priv->ndev, ++ "%s: clean tx desc fail\n", __func__); ++ goto err2; ++ } ++ ++ netsec_ring_irq_clr(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY); ++ ++ if (dev_of_node(priv->dev)) { ++ if (!of_phy_connect(priv->ndev, priv->phy_np, ++ netsec_phy_adjust_link, 0, ++ priv->phy_interface)) { ++ netif_err(priv, link, priv->ndev, "missing PHY\n"); ++ goto err2; ++ } ++ } else { ++ ret = phy_connect_direct(priv->ndev, priv->phydev, ++ netsec_phy_adjust_link, ++ priv->phy_interface); ++ if (ret) { ++ netif_err(priv, link, priv->ndev, ++ "phy_connect_direct() failed (%d)\n", ret); ++ goto err2; ++ } ++ } ++ ++ phy_start_aneg(ndev->phydev); ++ ++ netsec_ring_irq_disable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY); ++ ++ netsec_start_gmac(priv); ++ napi_enable(&priv->napi); ++ netif_start_queue(ndev); ++ ++ netsec_writel(priv, NETSEC_REG_INTEN_SET, ++ NETSEC_IRQ_TX | NETSEC_IRQ_RX); ++ ++ return 0; ++ ++err2: ++ pm_runtime_put_sync(priv->dev); ++ free_irq(priv->ndev->irq, priv); ++ priv->irq_registered = false; ++err1: ++ for (n = 0; n <= NETSEC_RING_MAX; n++) ++ netsec_free_desc_ring(priv, &priv->desc_ring[n]); ++err: ++ pm_runtime_put_sync(priv->dev); ++ ++ return ret; ++} ++ ++static int netsec_netdev_stop(struct net_device *ndev) ++{ ++ struct netsec_priv *priv = netdev_priv(ndev); ++ int n; ++ ++ phy_stop(ndev->phydev); ++ phy_disconnect(ndev->phydev); ++ ++ netif_stop_queue(priv->ndev); ++ napi_disable(&priv->napi); ++ ++ netsec_writel(priv, NETSEC_REG_INTEN_CLR, ~0); ++ netsec_stop_gmac(priv); ++ ++ pm_runtime_put_sync(priv->dev); ++ ++ for (n = 0; n <= NETSEC_RING_MAX; n++) ++ netsec_free_desc_ring(priv, &priv->desc_ring[n]); ++ ++ free_irq(priv->ndev->irq, priv); ++ priv->irq_registered = false; ++ ++ return 0; ++} ++ ++const struct net_device_ops netsec_netdev_ops = { ++ .ndo_open = netsec_netdev_open, ++ .ndo_stop = netsec_netdev_stop, ++ .ndo_start_xmit = netsec_netdev_start_xmit, ++ .ndo_set_features = netsec_netdev_set_features, ++ .ndo_set_mac_address = eth_mac_addr, ++ .ndo_validate_addr = eth_validate_addr, ++}; +diff --git a/drivers/net/ethernet/socionext/netsec/netsec_platform.c b/drivers/net/ethernet/socionext/netsec/netsec_platform.c +new file mode 100644 +index 0000000..624f6a7 +--- /dev/null ++++ b/drivers/net/ethernet/socionext/netsec/netsec_platform.c +@@ -0,0 +1,435 @@ ++/** ++ * drivers/net/ethernet/socionext/netsec/netsec_platform.c ++ * ++ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited. ++ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved. ++ * Andy Green ++ * Jassi Brar ++ * Ard Biesheuvel ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "netsec.h" ++ ++#define NETSEC_F_NETSEC_VER_MAJOR_NUM(x) (x & 0xffff0000) ++ ++static int napi_weight = 64; ++static u16 pause_time = 256; ++ ++static int netsec_of_probe(struct platform_device *pdev, ++ struct netsec_priv *priv) ++{ ++ int clk_count, ret, i; ++ ++ priv->phy_np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0); ++ if (!priv->phy_np) { ++ dev_err(&pdev->dev, "missing required property 'phy-handle'\n"); ++ return -EINVAL; ++ } ++ ++ /* we require named clocks if there is more than one */ ++ clk_count = of_property_count_strings(pdev->dev.of_node, "clock-names"); ++ if (clk_count > 1) { ++ if (clk_count > ARRAY_SIZE(priv->clk)) { ++ dev_err(&pdev->dev, "too many clocks specified (%d)\n", ++ clk_count); ++ return -EINVAL; ++ } ++ ++ for (i = 0; i < clk_count; i++) { ++ const char *clk_name; ++ ++ ret = of_property_read_string_index(pdev->dev.of_node, ++ "clock-names", i, ++ &clk_name); ++ if (ret) { ++ dev_err(&pdev->dev, ++ "failed to parse 'clock-names'\n"); ++ return ret; ++ } ++ priv->clk[i] = devm_clk_get(&pdev->dev, clk_name); ++ if (!strcmp(clk_name, "phy_refclk")) { ++ priv->freq = clk_get_rate(priv->clk[i]); ++ dev_dbg(&pdev->dev, ++ "found PHY refclock #%d freq %u\n", ++ i, priv->freq); ++ } ++ } ++ priv->clock_count = clk_count; ++ } else { ++ priv->clk[0] = devm_clk_get(&pdev->dev, NULL); ++ if (IS_ERR(priv->clk)) { ++ dev_err(&pdev->dev, ++ "missing required property 'clocks'\n"); ++ return PTR_ERR(priv->clk); ++ } ++ priv->freq = clk_get_rate(priv->clk[0]); ++ priv->clock_count = 1; ++ } ++ return 0; ++} ++ ++static int netsec_acpi_probe(struct platform_device *pdev, ++ struct netsec_priv *priv, u32 *phy_addr) ++{ ++ int ret; ++ ++ if (!IS_ENABLED(CONFIG_ACPI)) ++ return -ENODEV; ++ ++ ret = device_property_read_u32(&pdev->dev, "phy-channel", phy_addr); ++ if (ret) { ++ dev_err(&pdev->dev, ++ "missing required property 'phy-channel'\n"); ++ return ret; ++ } ++ ++ ret = device_property_read_u32(&pdev->dev, ++ "socionext,phy-clock-frequency", ++ &priv->freq); ++ if (ret) ++ dev_err(&pdev->dev, ++ "missing required property 'socionext,phy-clock-frequency'\n"); ++ return ret; ++} ++ ++static int netsec_probe(struct platform_device *pdev) ++{ ++ struct net_device *ndev; ++ struct netsec_priv *priv; ++ struct resource *mmio_res, *eeprom_res, *irq_res; ++ u8 *mac, macbuf[ETH_ALEN]; ++ u32 hw_ver, phy_addr; ++ int ret; ++ ++ mmio_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ if (!mmio_res) { ++ dev_err(&pdev->dev, "No MMIO resource found.\n"); ++ return -ENODEV; ++ } ++ ++ eeprom_res = platform_get_resource(pdev, IORESOURCE_MEM, 1); ++ if (!eeprom_res) { ++ dev_info(&pdev->dev, "No EEPROM resource found.\n"); ++ return -ENODEV; ++ } ++ ++ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); ++ if (!irq_res) { ++ dev_err(&pdev->dev, "No IRQ resource found.\n"); ++ return -ENODEV; ++ } ++ ++ ndev = alloc_etherdev(sizeof(*priv)); ++ if (!ndev) ++ return -ENOMEM; ++ ++ priv = netdev_priv(ndev); ++ priv->ndev = ndev; ++ SET_NETDEV_DEV(ndev, &pdev->dev); ++ platform_set_drvdata(pdev, priv); ++ priv->dev = &pdev->dev; ++ ++ priv->msg_enable = NETIF_MSG_TX_ERR | NETIF_MSG_HW | NETIF_MSG_DRV | ++ NETIF_MSG_LINK | NETIF_MSG_PROBE; ++ ++ ndev->irq = irq_res->start; ++ ++ priv->phy_interface = device_get_phy_mode(&pdev->dev); ++ if (priv->phy_interface < 0) { ++ dev_err(&pdev->dev, "missing required property 'phy-mode'\n"); ++ ret = -ENODEV; ++ goto free_ndev; ++ } ++ ++ priv->ioaddr = devm_ioremap(&pdev->dev, mmio_res->start, ++ resource_size(mmio_res)); ++ if (!priv->ioaddr) { ++ dev_err(&pdev->dev, "devm_ioremap() failed\n"); ++ ret = -ENXIO; ++ goto free_ndev; ++ } ++ ++ priv->eeprom_base = devm_memremap(&pdev->dev, eeprom_res->start, ++ resource_size(eeprom_res), ++ MEMREMAP_WT); ++ if (!priv->eeprom_base) { ++ dev_err(&pdev->dev, "devm_memremap() failed for EEPROM\n"); ++ ret = -ENXIO; ++ goto free_ndev; ++ } ++ ++ mac = device_get_mac_address(&pdev->dev, macbuf, sizeof(macbuf)); ++ if (mac) ++ ether_addr_copy(ndev->dev_addr, mac); ++ ++ if (priv->eeprom_base && ++ (!mac || !is_valid_ether_addr(ndev->dev_addr))) { ++ const u8 *macp = priv->eeprom_base + NETSEC_EEPROM_MAC_ADDRESS; ++ ++ ndev->dev_addr[0] = macp[3]; ++ ndev->dev_addr[1] = macp[2]; ++ ndev->dev_addr[2] = macp[1]; ++ ndev->dev_addr[3] = macp[0]; ++ ndev->dev_addr[4] = macp[7]; ++ ndev->dev_addr[5] = macp[6]; ++ } ++ ++ if (!is_valid_ether_addr(ndev->dev_addr)) { ++ dev_warn(&pdev->dev, "No MAC address found, using random\n"); ++ eth_hw_addr_random(ndev); ++ } ++ ++ if (dev_of_node(&pdev->dev)) ++ ret = netsec_of_probe(pdev, priv); ++ else ++ ret = netsec_acpi_probe(pdev, priv, &phy_addr); ++ if (ret) ++ goto free_ndev; ++ ++ if (!priv->freq) { ++ dev_err(&pdev->dev, "missing PHY reference clock frequency\n"); ++ ret = -ENODEV; ++ goto free_ndev; ++ } ++ ++ /* disable by default */ ++ priv->et_coalesce.rx_coalesce_usecs = 0; ++ priv->et_coalesce.rx_max_coalesced_frames = 1; ++ priv->et_coalesce.tx_coalesce_usecs = 0; ++ priv->et_coalesce.tx_max_coalesced_frames = 1; ++ ++ ret = device_property_read_u32(&pdev->dev, "max-frame-size", ++ &ndev->max_mtu); ++ if (ret < 0) ++ ndev->max_mtu = ETH_DATA_LEN; ++ ++ priv->rx_pkt_buf_len = ndev->max_mtu + 22; ++ priv->param.use_jumbo_pkt_flag = (ndev->max_mtu > ETH_DATA_LEN); ++ ++ pm_runtime_enable(&pdev->dev); ++ /* runtime_pm coverage just for probe, open/close also cover it */ ++ pm_runtime_get_sync(&pdev->dev); ++ ++ hw_ver = netsec_readl(priv, NETSEC_REG_F_TAIKI_VER); ++ /* this driver only supports F_TAIKI style NETSEC */ ++ if (NETSEC_F_NETSEC_VER_MAJOR_NUM(hw_ver) != ++ NETSEC_F_NETSEC_VER_MAJOR_NUM(NETSEC_REG_NETSEC_VER_F_TAIKI)) { ++ ret = -ENODEV; ++ goto pm_disable; ++ } ++ ++ dev_info(&pdev->dev, "hardware revision %d.%d\n", ++ hw_ver >> 16, hw_ver & 0xffff); ++ ++ priv->mac_mode.flow_start_th = NETSEC_FLOW_CONTROL_START_THRESHOLD; ++ priv->mac_mode.flow_stop_th = NETSEC_FLOW_CONTROL_STOP_THRESHOLD; ++ priv->mac_mode.pause_time = pause_time; ++ priv->mac_mode.flow_ctrl_enable_flag = false; ++ ++ netif_napi_add(ndev, &priv->napi, netsec_netdev_napi_poll, napi_weight); ++ ++ ndev->netdev_ops = &netsec_netdev_ops; ++ ndev->ethtool_ops = &netsec_ethtool_ops; ++ ndev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | ++ NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO | ++ NETIF_F_HIGHDMA | NETIF_F_RXCSUM; ++ ndev->hw_features = ndev->features; ++ ++ priv->rx_cksum_offload_flag = true; ++ spin_lock_init(&priv->tx_queue_lock); ++ ++ ret = netsec_mii_register(priv); ++ if (ret) { ++ dev_err(&pdev->dev, "mii bus registration failed (%d)\n", ret); ++ goto pm_disable; ++ } ++ ++ if (!dev_of_node(&pdev->dev)) { /* ACPI */ ++ priv->phydev = get_phy_device(priv->mii_bus, phy_addr, false); ++ if (IS_ERR(priv->phydev)) { ++ dev_err(&pdev->dev, "get_phy_device() failed (%ld)\n", ++ PTR_ERR(priv->phydev)); ++ ret = PTR_ERR(priv->phydev); ++ goto unregister_mii; ++ } ++ ++ ret = phy_device_register(priv->phydev); ++ if (ret) { ++ dev_err(&pdev->dev, ++ "phy_device_register() failed (%d)\n", ret); ++ phy_device_free(priv->phydev); ++ goto unregister_mii; ++ } ++ } ++ ++ /* disable all other interrupt sources */ ++ netsec_writel(priv, NETSEC_REG_INTEN_CLR, ~0); ++ netsec_writel(priv, NETSEC_REG_INTEN_SET, ++ NETSEC_IRQ_TX | NETSEC_IRQ_RX); ++ ++ if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) ++ dev_warn(&pdev->dev, "Failed to enable 64-bit DMA\n"); ++ ++ ret = register_netdev(ndev); ++ if (ret) { ++ netif_err(priv, probe, ndev, "register_netdev() failed\n"); ++ goto unregister_mii; ++ } ++ ++ pm_runtime_put_sync_suspend(&pdev->dev); ++ ++ return 0; ++ ++unregister_mii: ++ netsec_mii_unregister(priv); ++ ++pm_disable: ++ pm_runtime_put_sync_suspend(&pdev->dev); ++ pm_runtime_disable(&pdev->dev); ++ ++free_ndev: ++ free_netdev(ndev); ++ ++ dev_err(&pdev->dev, "init failed\n"); ++ ++ return ret; ++} ++ ++static int netsec_remove(struct platform_device *pdev) ++{ ++ struct netsec_priv *priv = platform_get_drvdata(pdev); ++ ++ unregister_netdev(priv->ndev); ++ if (!dev_of_node(&pdev->dev)) { /* ACPI */ ++ phy_device_remove(priv->phydev); ++ phy_device_free(priv->phydev); ++ } ++ netsec_mii_unregister(priv); ++ pm_runtime_disable(&pdev->dev); ++ free_netdev(priv->ndev); ++ ++ return 0; ++} ++ ++#ifdef CONFIG_PM ++static int netsec_runtime_suspend(struct device *dev) ++{ ++ struct netsec_priv *priv = dev_get_drvdata(dev); ++ int n; ++ ++ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__); ++ ++ if (priv->irq_registered) ++ disable_irq(priv->ndev->irq); ++ ++ netsec_writel(priv, NETSEC_REG_CLK_EN, 0); ++ ++ for (n = priv->clock_count - 1; n >= 0; n--) ++ clk_disable_unprepare(priv->clk[n]); ++ ++ return 0; ++} ++ ++static int netsec_runtime_resume(struct device *dev) ++{ ++ struct netsec_priv *priv = dev_get_drvdata(dev); ++ int n; ++ ++ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__); ++ ++ /* first let the clocks back on */ ++ ++ for (n = 0; n < priv->clock_count; n++) ++ clk_prepare_enable(priv->clk[n]); ++ ++ netsec_writel(priv, NETSEC_REG_CLK_EN, NETSEC_CLK_EN_REG_DOM_D | ++ NETSEC_CLK_EN_REG_DOM_C | ++ NETSEC_CLK_EN_REG_DOM_G); ++ ++ if (priv->irq_registered) ++ enable_irq(priv->ndev->irq); ++ ++ return 0; ++} ++ ++static int netsec_pm_suspend(struct device *dev) ++{ ++ struct netsec_priv *priv = dev_get_drvdata(dev); ++ ++ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__); ++ ++ if (pm_runtime_status_suspended(dev)) ++ return 0; ++ ++ return netsec_runtime_suspend(dev); ++} ++ ++static int netsec_pm_resume(struct device *dev) ++{ ++ struct netsec_priv *priv = dev_get_drvdata(dev); ++ ++ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__); ++ ++ if (pm_runtime_status_suspended(dev)) ++ return 0; ++ ++ return netsec_runtime_resume(dev); ++} ++#endif ++ ++static const struct dev_pm_ops netsec_pm_ops = { ++ SET_SYSTEM_SLEEP_PM_OPS(netsec_pm_suspend, netsec_pm_resume) ++ SET_RUNTIME_PM_OPS(netsec_runtime_suspend, netsec_runtime_resume, NULL) ++}; ++ ++static const struct of_device_id netsec_dt_ids[] = { ++ { .compatible = "socionext,synquacer-netsec" }, ++ { } ++}; ++MODULE_DEVICE_TABLE(of, netsec_dt_ids); ++ ++#ifdef CONFIG_ACPI ++static const struct acpi_device_id netsec_acpi_ids[] = { ++ { "SCX0001" }, ++ { } ++}; ++MODULE_DEVICE_TABLE(acpi, netsec_acpi_ids); ++#endif ++ ++static struct platform_driver netsec_driver = { ++ .probe = netsec_probe, ++ .remove = netsec_remove, ++ .driver.name = "netsec", ++ .driver.of_match_table = netsec_dt_ids, ++ .driver.acpi_match_table = ACPI_PTR(netsec_acpi_ids), ++ .driver.pm = &netsec_pm_ops, ++}; ++module_platform_driver(netsec_driver); ++ ++MODULE_AUTHOR("Andy Green "); ++MODULE_AUTHOR("Jassi Brar "); ++MODULE_AUTHOR("Ard Biesheuvel "); ++MODULE_DESCRIPTION("NETSEC Ethernet driver"); ++MODULE_LICENSE("GPL"); +-- +cgit v1.1 + +From 31a61532e7b859a797d36595ec5ab7485a9b24d5 Mon Sep 17 00:00:00 2001 +From: Jassi Brar +Date: Wed, 30 Aug 2017 15:55:52 +0530 +Subject: dt-bindings: net: Add DT bindings for Socionext Netsec + +This patch adds documentation for Device-Tree bindings for the +Socionext NetSec Controller driver. + +Signed-off-by: Jassi Brar +Signed-off-by: Ard Biesheuvel +--- + .../devicetree/bindings/net/socionext-netsec.txt | 43 ++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + create mode 100644 Documentation/devicetree/bindings/net/socionext-netsec.txt + +diff --git a/Documentation/devicetree/bindings/net/socionext-netsec.txt b/Documentation/devicetree/bindings/net/socionext-netsec.txt +new file mode 100644 +index 0000000..4695969 +--- /dev/null ++++ b/Documentation/devicetree/bindings/net/socionext-netsec.txt +@@ -0,0 +1,43 @@ ++* Socionext NetSec Ethernet Controller IP ++ ++Required properties: ++- compatible: Should be "socionext,synquacer-netsec" ++- reg: Address and length of the control register area, followed by the ++ address and length of the EEPROM holding the MAC address and ++ microengine firmware ++- interrupts: Should contain ethernet controller interrupt ++- clocks: phandle to the PHY reference clock, and any other clocks to be ++ switched by runtime_pm ++- clock-names: Required only if more than a single clock is listed in 'clocks'. ++ The PHY reference clock must be named 'phy_refclk' ++- phy-mode: See ethernet.txt file in the same directory ++- phy-handle: phandle to select child phy ++ ++Optional properties: (See ethernet.txt file in the same directory) ++- local-mac-address ++- mac-address ++- max-speed ++- max-frame-size ++ ++Required properties for the child phy: ++- reg: phy address ++ ++Example: ++ eth0: netsec@522D0000 { ++ compatible = "socionext,synquacer-netsec"; ++ reg = <0 0x522D0000 0x0 0x10000>, <0 0x10000000 0x0 0x10000>; ++ interrupts = ; ++ clocks = <&clk_netsec>; ++ phy-mode = "rgmii"; ++ max-speed = <1000>; ++ max-frame-size = <9000>; ++ phy-handle = <ðphy0>; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ ethphy0: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <1>; ++ }; ++ }; +-- +cgit v1.1 + diff --git a/baseconfig/CONFIG_NET_VENDOR_SNI b/baseconfig/CONFIG_NET_VENDOR_SNI new file mode 100644 index 000000000..4f301f9ba --- /dev/null +++ b/baseconfig/CONFIG_NET_VENDOR_SNI @@ -0,0 +1 @@ +# CONFIG_NET_VENDOR_SNI is not set diff --git a/baseconfig/CONFIG_PCIE_DW_HOST_ECAM b/baseconfig/CONFIG_PCIE_DW_HOST_ECAM new file mode 100644 index 000000000..c73d5c1aa --- /dev/null +++ b/baseconfig/CONFIG_PCIE_DW_HOST_ECAM @@ -0,0 +1 @@ +# CONFIG_PCIE_DW_HOST_ECAM is not set diff --git a/baseconfig/arm/arm64/CONFIG_NET_VENDOR_SNI b/baseconfig/arm/arm64/CONFIG_NET_VENDOR_SNI new file mode 100644 index 000000000..bb77206de --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_NET_VENDOR_SNI @@ -0,0 +1 @@ +CONFIG_NET_VENDOR_SNI=y diff --git a/baseconfig/arm/arm64/CONFIG_PCIE_DW_HOST_ECAM b/baseconfig/arm/arm64/CONFIG_PCIE_DW_HOST_ECAM new file mode 100644 index 000000000..cdb6169bd --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_PCIE_DW_HOST_ECAM @@ -0,0 +1 @@ +CONFIG_PCIE_DW_HOST_ECAM=y diff --git a/baseconfig/arm/arm64/CONFIG_SNI_NETSEC b/baseconfig/arm/arm64/CONFIG_SNI_NETSEC new file mode 100644 index 000000000..c348519ff --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_SNI_NETSEC @@ -0,0 +1 @@ +CONFIG_SNI_NETSEC=m diff --git a/baseconfig/arm/arm64/CONFIG_SOCIONEXT_SYNQUACER_PREITS b/baseconfig/arm/arm64/CONFIG_SOCIONEXT_SYNQUACER_PREITS new file mode 100644 index 000000000..ded5c358e --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_SOCIONEXT_SYNQUACER_PREITS @@ -0,0 +1 @@ +CONFIG_SOCIONEXT_SYNQUACER_PREITS=y diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index c12a5be0b..88c647cb9 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -3566,6 +3566,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +CONFIG_NET_VENDOR_SNI=y # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_NET_VENDOR_SUN is not set @@ -3943,6 +3944,7 @@ CONFIG_PCIE_ARMADA_8K=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +CONFIG_PCIE_DW_HOST_ECAM=y CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_DW=y @@ -5325,8 +5327,10 @@ CONFIG_SND_VIRMIDI=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m CONFIG_SND_YMFPCI=m +CONFIG_SNI_NETSEC=m # CONFIG_SOC_BRCMSTB is not set # CONFIG_SOC_CAMERA is not set +CONFIG_SOCIONEXT_SYNQUACER_PREITS=y CONFIG_SOC_TEGRA_FLOWCTRL=y # CONFIG_SOC_TI is not set # CONFIG_SOC_ZTE is not set diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 975087e0c..3826e38a2 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -3545,6 +3545,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +CONFIG_NET_VENDOR_SNI=y # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_NET_VENDOR_SUN is not set @@ -3922,6 +3923,7 @@ CONFIG_PCIE_ARMADA_8K=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +CONFIG_PCIE_DW_HOST_ECAM=y CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_DW=y @@ -5302,8 +5304,10 @@ CONFIG_SND_VIRMIDI=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m CONFIG_SND_YMFPCI=m +CONFIG_SNI_NETSEC=m # CONFIG_SOC_BRCMSTB is not set # CONFIG_SOC_CAMERA is not set +CONFIG_SOCIONEXT_SYNQUACER_PREITS=y CONFIG_SOC_TEGRA_FLOWCTRL=y # CONFIG_SOC_TI is not set # CONFIG_SOC_ZTE is not set diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 432dd7734..37cbe7126 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -3812,6 +3812,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_NET_VENDOR_SUN is not set @@ -4232,6 +4233,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_DW=y diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index bd5134b5a..15bbd4bde 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -3638,6 +3638,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_NET_VENDOR_SUN is not set @@ -4016,6 +4017,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_DW=y diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index 1e93c9195..c9ccc11dd 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -3617,6 +3617,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_NET_VENDOR_SUN is not set @@ -3995,6 +3996,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_DW=y diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index bdb41cc97..b40e2382c 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -3791,6 +3791,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_NET_VENDOR_SUN is not set @@ -4211,6 +4212,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_DW=y diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 3e923e8d6..64c4e7935 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -3430,6 +3430,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3812,6 +3813,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index dc0d0f59a..94e3ebf5e 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -3450,6 +3450,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3832,6 +3833,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 3dc57b37c..a4ac8040c 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -3450,6 +3450,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3832,6 +3833,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-i686.config b/kernel-i686.config index 96c697ea6..4ce0555e6 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -3430,6 +3430,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3812,6 +3813,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 60528f85b..96e7bd030 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -3277,6 +3277,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3635,6 +3636,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-ppc64.config b/kernel-ppc64.config index 58e03fd12..210206cfd 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -3255,6 +3255,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3613,6 +3614,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 4818e1809..019637aff 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -3221,6 +3221,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3577,6 +3578,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 72e713014..50dd482b9 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -3199,6 +3199,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3555,6 +3556,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index c3a96b666..ee7cd5af8 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -3153,6 +3153,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_NET_VENDOR_SILAN is not set # CONFIG_NET_VENDOR_SIS is not set # CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set # CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_SUN is not set @@ -3505,6 +3506,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index a76883031..20abac243 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -3131,6 +3131,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_NET_VENDOR_SILAN is not set # CONFIG_NET_VENDOR_SIS is not set # CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_SNI is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set # CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_SUN is not set @@ -3483,6 +3484,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index f4b826b28..33422af8c 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -3487,6 +3487,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3875,6 +3876,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 5d3f82fb1..038939cf7 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -3467,6 +3467,7 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SILAN=y CONFIG_NET_VENDOR_SIS=y CONFIG_NET_VENDOR_SMSC=y +# CONFIG_NET_VENDOR_SNI is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_NET_VENDOR_SUN=y @@ -3855,6 +3856,7 @@ CONFIG_PCIEAER=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM=y CONFIG_PCIE_DPC=y +# CONFIG_PCIE_DW_HOST_ECAM is not set # CONFIG_PCIE_DW_PLAT is not set CONFIG_PCIE_ECRC=y # CONFIG_PCI_ENDPOINT is not set diff --git a/kernel.spec b/kernel.spec index bb4ab3172..38a3284b0 100644 --- a/kernel.spec +++ b/kernel.spec @@ -633,6 +633,15 @@ Patch330: arm-of-restrict-dma-configuration.patch # Upstream ACPI fix Patch331: arm64-xgene-acpi-fix.patch +# Generic fixes and enablement for Socionext SoC and 96board +Patch332: ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch + +# https://patchwork.kernel.org/patch/9980861/ +Patch333: PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch + +# https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=synquacer-netsec +Patch334: arm64-socionext-96b-enablement.patch + # 400 - IBM (ppc/s390x) patches # 500 - Temp fixes/CVEs etc @@ -2229,6 +2238,7 @@ fi %changelog * Fri Oct 6 2017 Peter Robinson - ARM ACPI fix for x-gene RHBZ #1498117 +- Initial support for Socionext Synquacer platform * Thu Oct 05 2017 Laura Abbott - 4.13.5-300 - Linux v4.13.5 From 32616a8223f427e00d05dfade3bbb7bdcd1224ed Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 7 Oct 2017 10:18:23 +0100 Subject: [PATCH 032/289] Fix for QCom GPU clock rate (Hack until interconnect API lands upstream) --- kernel.spec | 4 ++++ qcom-clk-gpu-msm.patch | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 qcom-clk-gpu-msm.patch diff --git a/kernel.spec b/kernel.spec index 38a3284b0..ab92f6d07 100644 --- a/kernel.spec +++ b/kernel.spec @@ -615,6 +615,9 @@ Patch313: qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch # https://patchwork.kernel.org/patch/9850189/ Patch314: qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch +# Hack until interconnect API lands upstream +Patch315: qcom-clk-gpu-msm.patch + # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ Patch321: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch @@ -2239,6 +2242,7 @@ fi * Fri Oct 6 2017 Peter Robinson - ARM ACPI fix for x-gene RHBZ #1498117 - Initial support for Socionext Synquacer platform +- Fix for QCom GPU clock rate * Thu Oct 05 2017 Laura Abbott - 4.13.5-300 - Linux v4.13.5 diff --git a/qcom-clk-gpu-msm.patch b/qcom-clk-gpu-msm.patch new file mode 100644 index 000000000..657995d47 --- /dev/null +++ b/qcom-clk-gpu-msm.patch @@ -0,0 +1,27 @@ +From cf866c6ef2e421b5563ab34c04dd4b07be5aa013 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sat, 7 Oct 2017 10:11:39 +0100 +Subject: [PATCH] hack for bus clk + +Turn it up to 11! +--- + drivers/gpu/drm/msm/msm_gpu.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c +index 9f3dbc236ab3..75acdda496b5 100644 +--- a/drivers/gpu/drm/msm/msm_gpu.c ++++ b/drivers/gpu/drm/msm/msm_gpu.c +@@ -93,6 +93,9 @@ static int enable_clk(struct msm_gpu *gpu) + { + int i; + ++ if (gpu->grp_clks[4]) ++ clk_set_rate(gpu->grp_clks[4], INT_MAX); ++ + if (gpu->core_clk && gpu->fast_rate) + clk_set_rate(gpu->core_clk, gpu->fast_rate); + +-- +2.14.2 + From a83c736bcb62b50bb6b04da212604b42e2502a2f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 9 Oct 2017 08:33:25 +0100 Subject: [PATCH 033/289] minor cleanup, NFC --- baseconfig/{ => arm}/CONFIG_HW_RANDOM_OMAP | 0 kernel-i686-PAE.config | 1 - kernel-i686-PAEdebug.config | 1 - kernel-i686-debug.config | 1 - kernel-i686.config | 1 - kernel-ppc64-debug.config | 1 - kernel-ppc64.config | 1 - kernel-ppc64le-debug.config | 1 - kernel-ppc64le.config | 1 - kernel-s390x-debug.config | 1 - kernel-s390x.config | 1 - kernel-x86_64-debug.config | 1 - kernel-x86_64.config | 1 - 13 files changed, 12 deletions(-) rename baseconfig/{ => arm}/CONFIG_HW_RANDOM_OMAP (100%) diff --git a/baseconfig/CONFIG_HW_RANDOM_OMAP b/baseconfig/arm/CONFIG_HW_RANDOM_OMAP similarity index 100% rename from baseconfig/CONFIG_HW_RANDOM_OMAP rename to baseconfig/arm/CONFIG_HW_RANDOM_OMAP diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 64c4e7935..7dff90320 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -1843,7 +1843,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m CONFIG_HW_RANDOM_VIA=m diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 94e3ebf5e..9a2763e32 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -1861,7 +1861,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m CONFIG_HW_RANDOM_VIA=m diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index a4ac8040c..42e032137 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -1861,7 +1861,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m CONFIG_HW_RANDOM_VIA=m diff --git a/kernel-i686.config b/kernel-i686.config index 4ce0555e6..9f1839607 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -1843,7 +1843,6 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m CONFIG_HW_RANDOM_VIA=m diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 96e7bd030..0612d96b8 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -1758,7 +1758,6 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m CONFIG_HW_RANDOM_TIMERIOMEM=m diff --git a/kernel-ppc64.config b/kernel-ppc64.config index 210206cfd..a80b9702e 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -1740,7 +1740,6 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m CONFIG_HW_RANDOM_TIMERIOMEM=m diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 019637aff..4321059f2 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -1710,7 +1710,6 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m CONFIG_HW_RANDOM_TIMERIOMEM=m diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 50dd482b9..935002b17 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -1692,7 +1692,6 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m CONFIG_HW_RANDOM_TIMERIOMEM=m diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index ee7cd5af8..8988d54d3 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -1668,7 +1668,6 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_HWMON is not set CONFIG_HWPOISON_INJECT=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_S390=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m diff --git a/kernel-s390x.config b/kernel-s390x.config index 20abac243..f13e9ba6c 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -1650,7 +1650,6 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_HWMON is not set CONFIG_HWPOISON_INJECT=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_S390=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 33422af8c..cf15edf99 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -1897,7 +1897,6 @@ CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m CONFIG_HW_RANDOM_VIA=m diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 038939cf7..36909844e 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -1879,7 +1879,6 @@ CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=m CONFIG_HW_RANDOM_VIA=m From 7fcc58487b9380c30495ab6ce9016aa80fa3e12c Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 9 Oct 2017 18:07:18 +0100 Subject: [PATCH 034/289] Enable KASLR on aarch64 --- baseconfig/arm/arm64/CONFIG_RANDOMIZE_BASE | 2 +- baseconfig/arm/arm64/CONFIG_RANDOMIZE_MODULE_REGION_FULL | 1 + baseconfig/arm/arm64/CONFIG_RELOCATABLE | 2 +- kernel-aarch64-debug.config | 5 +++-- kernel-aarch64.config | 5 +++-- kernel.spec | 3 +++ 6 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 baseconfig/arm/arm64/CONFIG_RANDOMIZE_MODULE_REGION_FULL diff --git a/baseconfig/arm/arm64/CONFIG_RANDOMIZE_BASE b/baseconfig/arm/arm64/CONFIG_RANDOMIZE_BASE index 097a2d3e7..20610a95a 100644 --- a/baseconfig/arm/arm64/CONFIG_RANDOMIZE_BASE +++ b/baseconfig/arm/arm64/CONFIG_RANDOMIZE_BASE @@ -1 +1 @@ -# CONFIG_RANDOMIZE_BASE is not set +CONFIG_RANDOMIZE_BASE=y diff --git a/baseconfig/arm/arm64/CONFIG_RANDOMIZE_MODULE_REGION_FULL b/baseconfig/arm/arm64/CONFIG_RANDOMIZE_MODULE_REGION_FULL new file mode 100644 index 000000000..7645a371e --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_RANDOMIZE_MODULE_REGION_FULL @@ -0,0 +1 @@ +CONFIG_RANDOMIZE_MODULE_REGION_FULL=y diff --git a/baseconfig/arm/arm64/CONFIG_RELOCATABLE b/baseconfig/arm/arm64/CONFIG_RELOCATABLE index ff7e13901..36808edb3 100644 --- a/baseconfig/arm/arm64/CONFIG_RELOCATABLE +++ b/baseconfig/arm/arm64/CONFIG_RELOCATABLE @@ -1 +1 @@ -# CONFIG_RELOCATABLE is not set +CONFIG_RELOCATABLE=y diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 88c647cb9..ce979b0fb 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -4262,7 +4262,8 @@ CONFIG_RADIO_WL1273=m CONFIG_RADIO_ZOLTRIX=m CONFIG_RAID_ATTRS=m # CONFIG_RANDOM32_SELFTEST is not set -# CONFIG_RANDOMIZE_BASE is not set +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MODULE_REGION_FULL=y CONFIG_RAS_CEC=y CONFIG_RASPBERRYPI_FIRMWARE=y CONFIG_RASPBERRYPI_POWER=y @@ -4363,8 +4364,8 @@ CONFIG_REISERFS_FS_SECURITY=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y -# CONFIG_RELOCATABLE is not set # CONFIG_RELOCATABLE_TEST is not set +CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 3826e38a2..70a552b53 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -4240,7 +4240,8 @@ CONFIG_RADIO_WL1273=m CONFIG_RADIO_ZOLTRIX=m CONFIG_RAID_ATTRS=m # CONFIG_RANDOM32_SELFTEST is not set -# CONFIG_RANDOMIZE_BASE is not set +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MODULE_REGION_FULL=y CONFIG_RAS_CEC=y CONFIG_RASPBERRYPI_FIRMWARE=y CONFIG_RASPBERRYPI_POWER=y @@ -4341,8 +4342,8 @@ CONFIG_REISERFS_FS_SECURITY=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y -# CONFIG_RELOCATABLE is not set # CONFIG_RELOCATABLE_TEST is not set +CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y diff --git a/kernel.spec b/kernel.spec index ab92f6d07..62e84e1ee 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2239,6 +2239,9 @@ fi # # %changelog +* Mon Oct 9 2017 Peter Robinson +- Enable KASLR on aarch64 + * Fri Oct 6 2017 Peter Robinson - ARM ACPI fix for x-gene RHBZ #1498117 - Initial support for Socionext Synquacer platform From 0b78d80e8014f38fcd75b156a4d83d2b1e01dbb9 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 10 Oct 2017 08:36:45 -0500 Subject: [PATCH 035/289] Disable kernel tracking on SMBus devices (rhbz 1482648) --- ...ble-kernel-tracking-on-SMBus-devices.patch | 51 +++++++++++++++++++ kernel.spec | 6 +++ 2 files changed, 57 insertions(+) create mode 100644 Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch diff --git a/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch b/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch new file mode 100644 index 000000000..81e858fd0 --- /dev/null +++ b/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch @@ -0,0 +1,51 @@ +From patchwork Thu Sep 28 20:07:19 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit +Subject: Input: synaptics - Disable kernel tracking on SMBus devices +From: Andrew Duggan +X-Patchwork-Id: 9976729 +Message-Id: <1506629239-5940-1-git-send-email-aduggan@synaptics.com> +To: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org +Cc: Andrew Duggan , + Dmitry Torokhov , + Benjamin Tissoires , + =?UTF-8?q?Kamil=20P=C3=A1ral?= +Date: Thu, 28 Sep 2017 13:07:19 -0700 + +In certain situations kernel tracking seems to be getting confused +and incorrectly reporting the slot of a contact. On example is when +the user does a three finger click or tap and then places two fingers +on the touchpad in the same area. The kernel tracking code seems to +continue to think that there are three contacts on the touchpad and +incorrectly alternates the slot of one of the contacts. The result that +is the input subsystem reports a stream of button press and release +events as the reported slot changes. + +Kernel tracking was originally enabled to prevent cursor jumps, but it +is unclear how much of an issue kernel jumps actually are. This patch +simply disabled kernel tracking for now. + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1482640 + +Signed-off-by: Andrew Duggan +Tested-by: Kamil Páral +Acked-by: Benjamin Tissoires +--- + drivers/input/mouse/synaptics.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c +index 5af0b7d..ee5466a 100644 +--- a/drivers/input/mouse/synaptics.c ++++ b/drivers/input/mouse/synaptics.c +@@ -1709,8 +1709,7 @@ static int synaptics_create_intertouch(struct psmouse *psmouse, + .sensor_pdata = { + .sensor_type = rmi_sensor_touchpad, + .axis_align.flip_y = true, +- /* to prevent cursors jumps: */ +- .kernel_tracking = true, ++ .kernel_tracking = false, + .topbuttonpad = topbuttonpad, + }, + .f30_data = { diff --git a/kernel.spec b/kernel.spec index 62e84e1ee..5277a0afc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -685,6 +685,9 @@ Patch628: 3-3-inet-fix-improper-empty-comparison.patch # rhbz 1497861 Patch629: 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch +# rhbz 1482648 +Patch630: Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch + # END OF PATCH DEFINITIONS %endif @@ -2239,6 +2242,9 @@ fi # # %changelog +* Tue Oct 10 2017 Justin M. Forbes +- Disable kernel tracking on SMBus devices (rhbz 1482648) + * Mon Oct 9 2017 Peter Robinson - Enable KASLR on aarch64 From 03ccb2892ba4ea5b9568c716c8a66ecb06a92eb7 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 11 Oct 2017 15:03:46 +0100 Subject: [PATCH 036/289] Reduces a number of primarily info logs to dmesg --- drm-cma-reduce-dmesg-logs.patch | 96 +++++++++++++++++++++++++++++++++ kernel.spec | 5 ++ 2 files changed, 101 insertions(+) create mode 100644 drm-cma-reduce-dmesg-logs.patch diff --git a/drm-cma-reduce-dmesg-logs.patch b/drm-cma-reduce-dmesg-logs.patch new file mode 100644 index 000000000..2e39d6e70 --- /dev/null +++ b/drm-cma-reduce-dmesg-logs.patch @@ -0,0 +1,96 @@ +From patchwork Thu Oct 5 11:29:17 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [v2] drm/gem-cma-helper: Change the level of the allocation failure + message +From: Boris Brezillon +X-Patchwork-Id: 180737 +Message-Id: <20171005112917.15949-1-boris.brezillon@free-electrons.com> +To: David Airlie , Daniel Vetter , + dri-devel@lists.freedesktop.org +Cc: Boris Brezillon +Date: Thu, 5 Oct 2017 13:29:17 +0200 + +drm_gem_cma_create() prints an error message when dma_alloc_wc() fails to +allocate the amount of memory we requested. This can lead to annoying +error messages when CMA is only one possible source of memory for the BO +allocation. Turn this error message into a debug one. + +Signed-off-by: Boris Brezillon +Reviewed-by: Daniel Vetter +Reviewed-by: Eric Engestrom +Reviewed-by: Eric Anholt +--- +Changes in v2: +- Remove __must_check attribute +--- + drivers/gpu/drm/drm_gem_cma_helper.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c +index 373e33f22be4..020e7668dfab 100644 +--- a/drivers/gpu/drm/drm_gem_cma_helper.c ++++ b/drivers/gpu/drm/drm_gem_cma_helper.c +@@ -112,7 +112,7 @@ struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, + cma_obj->vaddr = dma_alloc_wc(drm->dev, size, &cma_obj->paddr, + GFP_KERNEL | __GFP_NOWARN); + if (!cma_obj->vaddr) { +- dev_err(drm->dev, "failed to allocate buffer with size %zu\n", ++ dev_dbg(drm->dev, "failed to allocate buffer with size %zu\n", + size); + ret = -ENOMEM; + goto error; +From patchwork Wed Oct 4 12:54:47 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: cma: Take __GFP_NOWARN into account in cma_alloc() +From: Boris Brezillon +X-Patchwork-Id: 180554 +Message-Id: <20171004125447.15195-1-boris.brezillon@free-electrons.com> +To: linux-mm@kvack.org, Andrew Morton , + Laura Abbott +Cc: Boris Brezillon , + Jaewon Kim , dri-devel@lists.freedesktop.org +Date: Wed, 4 Oct 2017 14:54:47 +0200 + +cma_alloc() unconditionally prints an INFO message when the CMA +allocation fails. Make this message conditional on the non-presence of +__GFP_NOWARN in gfp_mask. + +Signed-off-by: Boris Brezillon +Acked-by: Laura Abbott +--- +Hello, + +This patch aims at removing INFO messages that are displayed when the +VC4 driver tries to allocate buffer objects. From the driver perspective +an allocation failure is acceptable, and the driver can possibly do +something to make following allocation succeed (like flushing the VC4 +internal cache). + +Also, I don't understand why this message is only an INFO message, and +not a WARN (pr_warn()). Please let me know if you have good reasons to +keep it as an unconditional pr_info(). + +Thanks, + +Boris +--- + mm/cma.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mm/cma.c b/mm/cma.c +index c0da318c020e..022e52bd8370 100644 +--- a/mm/cma.c ++++ b/mm/cma.c +@@ -460,7 +460,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, + + trace_cma_alloc(pfn, page, count, align); + +- if (ret) { ++ if (ret && !(gfp_mask & __GFP_NOWARN)) { + pr_info("%s: alloc failed, req-size: %zu pages, ret: %d\n", + __func__, count, ret); + cma_debug_show_areas(cma); diff --git a/kernel.spec b/kernel.spec index 5277a0afc..fdc2b8cd3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -575,6 +575,11 @@ Patch211: drm-i915-hush-check-crtc-state.patch # 300 - ARM patches +# Reduces a number of primarily info logs to dmesg +# https://patchwork.freedesktop.org/patch/180737/ +# https://patchwork.freedesktop.org/patch/180554/ +Patch300: drm-cma-reduce-dmesg-logs.patch + # http://www.spinics.net/lists/linux-tegra/msg26029.html Patch301: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch From 5e44bb2ced22130915a99b469b3efca05abc40a2 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 11 Oct 2017 16:11:48 -0400 Subject: [PATCH 037/289] Fix incorrect updates of uninstantiated keys crash the kernel (rhbz 1498017) --- ...add_key-update-an-uninstantiated-key.patch | 130 +++++++++ ...tween-updating-and-finding-negative-.patch | 258 ++++++++++++++++++ kernel.spec | 7 + 3 files changed, 395 insertions(+) create mode 100644 KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch create mode 100644 KEYS-fix-race-between-updating-and-finding-negative-.patch diff --git a/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch b/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch new file mode 100644 index 000000000..af7478ee5 --- /dev/null +++ b/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch @@ -0,0 +1,130 @@ +From 7289bfaee2a42bdb56eecab0625907c045d080ba Mon Sep 17 00:00:00 2001 +From: Eric Biggers +Date: Wed, 27 Sep 2017 12:50:41 -0700 +Subject: [PATCH] KEYS: don't let add_key() update an uninstantiated key + +Currently, add_key() will, when passed a key that already exists, call +the key's ->update() method. But this is heavily broken in the case +where the key is uninstantiated because it doesn't call +__key_instantiate_and_link(). Consequently, it doesn't do most of the +things that are supposed to happen when the key is instantiated, such as +setting KEY_FLAG_INSTANTIATED, clearing KEY_FLAG_USER_CONSTRUCT and +awakening tasks waiting on it, and incrementing key->user->nikeys. + +It also never takes key_construction_mutex, which means that +->instantiate() can run concurrently with ->update() on the same key. +In the case of the "user" and "logon" key types this causes a memory +leak, at best. Maybe even worse, the ->update() methods of the +"encrypted" and "trusted" key types actually just dereference a NULL +pointer when passed an uninstantiated key. + +Therefore, change find_key_to_update() to return NULL if the found key +is uninstantiated, so that add_key() replaces the key rather than +instantiating it. This seems to be better than fixing __key_update() to +call __key_instantiate_and_link(), since given all the bugs noted above +as well as that the existing behavior was undocumented and +keyctl_instantiate() is supposed to be used instead, I doubt anyone was +relying on the existing behavior. + +This patch only affects *uninstantiated* keys. For now we still allow a +negatively instantiated key to be updated (thereby positively +instantiating it), although that's broken too (the next patch fixes it) +and I'm not sure that anyone actually uses that functionality either. + +Here is a simple reproducer for the bug using the "encrypted" key type +(requires CONFIG_ENCRYPTED_KEYS=y), though as noted above the bug +pertained to more than just the "encrypted" key type: + + #include + #include + #include + + int main(void) + { + int ringid = keyctl_join_session_keyring(NULL); + + if (fork()) { + for (;;) { + const char payload[] = "update user:foo 32"; + + usleep(rand() % 10000); + add_key("encrypted", "desc", payload, sizeof(payload), ringid); + keyctl_clear(ringid); + } + } else { + for (;;) + request_key("encrypted", "desc", "callout_info", ringid); + } + } + +It causes: + + BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 + IP: encrypted_update+0xb0/0x170 + PGD 7a178067 P4D 7a178067 PUD 77269067 PMD 0 + PREEMPT SMP + CPU: 0 PID: 340 Comm: reproduce Tainted: G D 4.14.0-rc1-00025-g428490e38b2e #796 + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 + task: ffff8a467a39a340 task.stack: ffffb15c40770000 + RIP: 0010:encrypted_update+0xb0/0x170 + RSP: 0018:ffffb15c40773de8 EFLAGS: 00010246 + RAX: 0000000000000000 RBX: ffff8a467a275b00 RCX: 0000000000000000 + RDX: 0000000000000005 RSI: ffff8a467a275b14 RDI: ffffffffb742f303 + RBP: ffffb15c40773e20 R08: 0000000000000000 R09: ffff8a467a275b17 + R10: 0000000000000020 R11: 0000000000000000 R12: 0000000000000000 + R13: 0000000000000000 R14: ffff8a4677057180 R15: ffff8a467a275b0f + FS: 00007f5d7fb08700(0000) GS:ffff8a467f200000(0000) knlGS:0000000000000000 + CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 + CR2: 0000000000000018 CR3: 0000000077262005 CR4: 00000000001606f0 + Call Trace: + key_create_or_update+0x2bc/0x460 + SyS_add_key+0x10c/0x1d0 + entry_SYSCALL_64_fastpath+0x1f/0xbe + RIP: 0033:0x7f5d7f211259 + RSP: 002b:00007ffed03904c8 EFLAGS: 00000246 ORIG_RAX: 00000000000000f8 + RAX: ffffffffffffffda RBX: 000000003b2a7955 RCX: 00007f5d7f211259 + RDX: 00000000004009e4 RSI: 00000000004009ff RDI: 0000000000400a04 + RBP: 0000000068db8bad R08: 000000003b2a7955 R09: 0000000000000004 + R10: 000000000000001a R11: 0000000000000246 R12: 0000000000400868 + R13: 00007ffed03905d0 R14: 0000000000000000 R15: 0000000000000000 + Code: 77 28 e8 64 34 1f 00 45 31 c0 31 c9 48 8d 55 c8 48 89 df 48 8d 75 d0 e8 ff f9 ff ff 85 c0 41 89 c4 0f 88 84 00 00 00 4c 8b 7d c8 <49> 8b 75 18 4c 89 ff e8 24 f8 ff ff 85 c0 41 89 c4 78 6d 49 8b + RIP: encrypted_update+0xb0/0x170 RSP: ffffb15c40773de8 + CR2: 0000000000000018 + +Cc: [v2.6.12+] +Signed-off-by: Eric Biggers +--- + security/keys/keyring.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/security/keys/keyring.c b/security/keys/keyring.c +index 4fa82a8a9c0e..129a4175760b 100644 +--- a/security/keys/keyring.c ++++ b/security/keys/keyring.c +@@ -1056,8 +1056,8 @@ EXPORT_SYMBOL(keyring_restrict); + * caller must also hold a lock on the keyring semaphore. + * + * Returns a pointer to the found key with usage count incremented if +- * successful and returns NULL if not found. Revoked and invalidated keys are +- * skipped over. ++ * successful and returns NULL if not found. Revoked, invalidated, and ++ * uninstantiated keys are skipped over. (But negative keys are not!) + * + * If successful, the possession indicator is propagated from the keyring ref + * to the returned key reference. +@@ -1084,8 +1084,10 @@ key_ref_t find_key_to_update(key_ref_t keyring_ref, + + found: + key = keyring_ptr_to_key(object); +- if (key->flags & ((1 << KEY_FLAG_INVALIDATED) | +- (1 << KEY_FLAG_REVOKED))) { ++ if ((key->flags & ((1 << KEY_FLAG_INVALIDATED) | ++ (1 << KEY_FLAG_REVOKED) | ++ (1 << KEY_FLAG_INSTANTIATED))) != ++ (1 << KEY_FLAG_INSTANTIATED)) { + kleave(" = NULL [x]"); + return NULL; + } +-- +2.13.6 + diff --git a/KEYS-fix-race-between-updating-and-finding-negative-.patch b/KEYS-fix-race-between-updating-and-finding-negative-.patch new file mode 100644 index 000000000..e72cdaf4a --- /dev/null +++ b/KEYS-fix-race-between-updating-and-finding-negative-.patch @@ -0,0 +1,258 @@ +From 4b244721c11c2f66052ceadd8ef6c48a53290e10 Mon Sep 17 00:00:00 2001 +From: Eric Biggers +Date: Wed, 27 Sep 2017 12:50:42 -0700 +Subject: [PATCH] KEYS: fix race between updating and finding negative key + +In keyring_search_iterator() and in wait_for_key_construction(), we +check whether the key has been negatively instantiated, and if so return +the key's ->reject_error. + +However, no lock is held during this, and ->reject_error is in union +with ->payload. And it's impossible for KEY_FLAG_NEGATIVE to be updated +atomically with respect to ->reject_error and ->payload. + +Most problematically, when a negative key is positively instantiated via +__key_update() (via sys_add_key()), ->payload is initialized first, then +KEY_FLAG_NEGATIVE is cleared. But that means that ->reject_error can be +observed to have a bogus value, having been overwritten with ->payload, +while the key still appears to be "negative". Clearing +KEY_FLAG_NEGATIVE first wouldn't work either, since then anyone who +accesses the payload under rcu_read_lock() rather than the key semaphore +might observe an uninitialized ->payload. Nor can we just always take +the key's semaphore when checking whether the key is negative, since +keyring searches happen under rcu_read_lock(). + +Therefore, fix the bug by moving ->reject_error into the high bits of +->flags so that we can read and write it atomically with respect to +KEY_FLAG_NEGATIVE and KEY_FLAG_INSTANTIATED. + +This will also allow KEY_FLAG_NEGATIVE to be removed, since tests for +KEY_FLAG_NEGATIVE can be replaced with tests for nonzero reject_error. +But for ease of backporting this fix, that is left for a later patch. + +This fixes a kernel crash caused by the following program: + + #include + #include + #include + + int main(void) + { + int ringid = keyctl_join_session_keyring(NULL); + + if (fork()) { + for (;;) { + usleep(rand() % 4096); + add_key("user", "desc", "x", 1, ringid); + keyctl_clear(ringid); + } + } else { + for (;;) + request_key("user", "desc", "", ringid); + } + } + +Here is the crash: + + BUG: unable to handle kernel paging request at fffffffffd39a6b0 + IP: __key_link_begin+0x0/0x100 + PGD 7a0a067 P4D 7a0a067 PUD 7a0c067 PMD 0 + Oops: 0000 [#1] SMP + CPU: 1 PID: 165 Comm: keyctl_negate_r Not tainted 4.14.0-rc1 #377 + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-20170228_101828-anatol 04/01/2014 + task: ffff9791fd809140 task.stack: ffffacba402bc000 + RIP: 0010:__key_link_begin+0x0/0x100 + RSP: 0018:ffffacba402bfdc8 EFLAGS: 00010282 + RAX: ffff9791fd809140 RBX: fffffffffd39a620 RCX: 0000000000000008 + RDX: ffffacba402bfdd0 RSI: fffffffffd39a6a0 RDI: ffff9791fd810600 + RBP: ffffacba402bfdf8 R08: 0000000000000063 R09: ffffffff94845620 + R10: 8080808080808080 R11: 0000000000000004 R12: ffff9791fd810600 + R13: ffff9791fd39a940 R14: fffffffffd39a6a0 R15: 0000000000000000 + FS: 00007fbf14a90740(0000) GS:ffff9791ffd00000(0000) knlGS:0000000000000000 + CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 + CR2: fffffffffd39a6b0 CR3: 000000003b910003 CR4: 00000000003606e0 + Call Trace: + ? key_link+0x28/0xb0 + ? search_process_keyrings+0x13/0x100 + request_key_and_link+0xcb/0x550 + ? keyring_instantiate+0x110/0x110 + ? key_default_cmp+0x20/0x20 + SyS_request_key+0xc0/0x160 + ? exit_to_usermode_loop+0x5e/0x80 + entry_SYSCALL_64_fastpath+0x1a/0xa5 + RIP: 0033:0x7fbf14190bb9 + RSP: 002b:00007ffd8e4fe6c8 EFLAGS: 00000246 ORIG_RAX: 00000000000000f9 + RAX: ffffffffffffffda RBX: 0000000036cc28fb RCX: 00007fbf14190bb9 + RDX: 000055748b56ca4a RSI: 000055748b56ca46 RDI: 000055748b56ca4b + RBP: 000055748b56ca4a R08: 0000000000000001 R09: 0000000000000001 + R10: 0000000036cc28fb R11: 0000000000000246 R12: 000055748b56c8b0 + R13: 00007ffd8e4fe7d0 R14: 0000000000000000 R15: 0000000000000000 + Code: c5 0f 85 69 ff ff ff 48 c7 c3 82 ff ff ff eb ab 45 31 ed e9 18 ff ff ff 85 c0 75 8d eb d2 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 <48> 83 7e 10 00 0f 84 c5 00 00 00 55 48 89 e5 41 57 41 56 41 55 + RIP: __key_link_begin+0x0/0x100 RSP: ffffacba402bfdc8 + CR2: fffffffffd39a6b0 + +Fixes: 146aa8b1453b ("KEYS: Merge the type-specific data with the payload data") +Cc: [v4.4+] +Signed-off-by: Eric Biggers +--- + include/linux/key.h | 12 +++++++++++- + security/keys/key.c | 26 +++++++++++++++++++------- + security/keys/keyctl.c | 3 +++ + security/keys/keyring.c | 4 ++-- + security/keys/request_key.c | 11 +++++++---- + 5 files changed, 42 insertions(+), 14 deletions(-) + +diff --git a/include/linux/key.h b/include/linux/key.h +index e315e16b6ff8..b7b590d7c480 100644 +--- a/include/linux/key.h ++++ b/include/linux/key.h +@@ -189,6 +189,17 @@ struct key { + #define KEY_FLAG_KEEP 10 /* set if key should not be removed */ + #define KEY_FLAG_UID_KEYRING 11 /* set if key is a user or user session keyring */ + ++ /* ++ * If the key is negatively instantiated, then bits 20-31 hold the error ++ * code which should be returned when someone tries to use the key ++ * (unless they allow negative keys). The error code is stored as a ++ * positive number, so it must be negated before being returned. ++ * ++ * Note that a key can go from negative to positive but not vice versa. ++ */ ++#define KEY_FLAGS_REJECT_ERROR_SHIFT 20 ++#define KEY_FLAGS_REJECT_ERROR_MASK 0xFFF00000 ++ + /* the key type and key description string + * - the desc is used to match a key against search criteria + * - it should be a printable string +@@ -213,7 +224,6 @@ struct key { + struct list_head name_link; + struct assoc_array keys; + }; +- int reject_error; + }; + + /* This is set on a keyring to restrict the addition of a link to a key +diff --git a/security/keys/key.c b/security/keys/key.c +index eb914a838840..786158d3442e 100644 +--- a/security/keys/key.c ++++ b/security/keys/key.c +@@ -401,6 +401,20 @@ int key_payload_reserve(struct key *key, size_t datalen) + } + EXPORT_SYMBOL(key_payload_reserve); + ++static void mark_key_instantiated(struct key *key, unsigned int reject_error) ++{ ++ unsigned long old, new; ++ ++ do { ++ old = READ_ONCE(key->flags); ++ new = (old & ~((1 << KEY_FLAG_NEGATIVE) | ++ KEY_FLAGS_REJECT_ERROR_MASK)) | ++ (1 << KEY_FLAG_INSTANTIATED) | ++ (reject_error ? (1 << KEY_FLAG_NEGATIVE) : 0) | ++ (reject_error << KEY_FLAGS_REJECT_ERROR_SHIFT); ++ } while (cmpxchg_release(&key->flags, old, new) != old); ++} ++ + /* + * Instantiate a key and link it into the target keyring atomically. Must be + * called with the target keyring's semaphore writelocked. The target key's +@@ -431,7 +445,7 @@ static int __key_instantiate_and_link(struct key *key, + if (ret == 0) { + /* mark the key as being instantiated */ + atomic_inc(&key->user->nikeys); +- set_bit(KEY_FLAG_INSTANTIATED, &key->flags); ++ mark_key_instantiated(key, 0); + + if (test_and_clear_bit(KEY_FLAG_USER_CONSTRUCT, &key->flags)) + awaken = 1; +@@ -580,10 +594,8 @@ int key_reject_and_link(struct key *key, + if (!test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) { + /* mark the key as being negatively instantiated */ + atomic_inc(&key->user->nikeys); +- key->reject_error = -error; +- smp_wmb(); +- set_bit(KEY_FLAG_NEGATIVE, &key->flags); +- set_bit(KEY_FLAG_INSTANTIATED, &key->flags); ++ mark_key_instantiated(key, error); ++ + now = current_kernel_time(); + key->expiry = now.tv_sec + timeout; + key_schedule_gc(key->expiry + key_gc_delay); +@@ -753,7 +765,7 @@ static inline key_ref_t __key_update(key_ref_t key_ref, + ret = key->type->update(key, prep); + if (ret == 0) + /* updating a negative key instantiates it */ +- clear_bit(KEY_FLAG_NEGATIVE, &key->flags); ++ mark_key_instantiated(key, 0); + + up_write(&key->sem); + +@@ -987,7 +999,7 @@ int key_update(key_ref_t key_ref, const void *payload, size_t plen) + ret = key->type->update(key, &prep); + if (ret == 0) + /* updating a negative key instantiates it */ +- clear_bit(KEY_FLAG_NEGATIVE, &key->flags); ++ mark_key_instantiated(key, 0); + + up_write(&key->sem); + +diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c +index 365ff85d7e27..19a09e121089 100644 +--- a/security/keys/keyctl.c ++++ b/security/keys/keyctl.c +@@ -1223,6 +1223,9 @@ long keyctl_reject_key(key_serial_t id, unsigned timeout, unsigned error, + error == ERESTART_RESTARTBLOCK) + return -EINVAL; + ++ BUILD_BUG_ON(MAX_ERRNO > (KEY_FLAGS_REJECT_ERROR_MASK >> ++ KEY_FLAGS_REJECT_ERROR_SHIFT)); ++ + /* the appropriate instantiation authorisation key must have been + * assumed before calling this */ + ret = -EPERM; +diff --git a/security/keys/keyring.c b/security/keys/keyring.c +index 129a4175760b..e54ad0ed7aa4 100644 +--- a/security/keys/keyring.c ++++ b/security/keys/keyring.c +@@ -598,8 +598,8 @@ static int keyring_search_iterator(const void *object, void *iterator_data) + if (ctx->flags & KEYRING_SEARCH_DO_STATE_CHECK) { + /* we set a different error code if we pass a negative key */ + if (kflags & (1 << KEY_FLAG_NEGATIVE)) { +- smp_rmb(); +- ctx->result = ERR_PTR(key->reject_error); ++ ctx->result = ERR_PTR(-(int)(kflags >> ++ KEY_FLAGS_REJECT_ERROR_SHIFT)); + kleave(" = %d [neg]", ctx->skipped_ret); + goto skipped; + } +diff --git a/security/keys/request_key.c b/security/keys/request_key.c +index 63e63a42db3c..0aab68344837 100644 +--- a/security/keys/request_key.c ++++ b/security/keys/request_key.c +@@ -590,15 +590,18 @@ struct key *request_key_and_link(struct key_type *type, + int wait_for_key_construction(struct key *key, bool intr) + { + int ret; ++ unsigned long flags; + + ret = wait_on_bit(&key->flags, KEY_FLAG_USER_CONSTRUCT, + intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); + if (ret) + return -ERESTARTSYS; +- if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) { +- smp_rmb(); +- return key->reject_error; +- } ++ ++ /* Pairs with RELEASE in mark_key_instantiated() */ ++ flags = smp_load_acquire(&key->flags); ++ if (flags & (1 << KEY_FLAG_NEGATIVE)) ++ return -(int)(flags >> KEY_FLAGS_REJECT_ERROR_SHIFT); ++ + return key_validate(key); + } + EXPORT_SYMBOL(wait_for_key_construction); +-- +2.13.6 + diff --git a/kernel.spec b/kernel.spec index fdc2b8cd3..ff44c2b8e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -657,6 +657,10 @@ Patch334: arm64-socionext-96b-enablement.patch # CVE-2017-7477 rhbz 1445207 1445208 Patch502: CVE-2017-7477.patch +# rhbz 1498016 1498017 +Patch503: KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch +Patch504: KEYS-fix-race-between-updating-and-finding-negative-.patch + # 600 - Patches for improved Bay and Cherry Trail device support # Below patches are submitted upstream, awaiting review / merging Patch601: 0001-Input-gpio_keys-Allow-suppression-of-input-events-fo.patch @@ -2247,6 +2251,9 @@ fi # # %changelog +* Wed Oct 11 2017 Jeremy Cline +- Fix incorrect updates of uninstantiated keys crash the kernel (rhbz 1498017) + * Tue Oct 10 2017 Justin M. Forbes - Disable kernel tracking on SMBus devices (rhbz 1482648) From c3f3f82ebb1fbb9693104f0822858af20446baa9 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 11 Oct 2017 17:07:10 -0400 Subject: [PATCH 038/289] Add the second rhbz in the changelog --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index ff44c2b8e..f89de5526 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2252,7 +2252,7 @@ fi # %changelog * Wed Oct 11 2017 Jeremy Cline -- Fix incorrect updates of uninstantiated keys crash the kernel (rhbz 1498017) +- Fix incorrect updates of uninstantiated keys crash the kernel (rhbz 1498016 1498017) * Tue Oct 10 2017 Justin M. Forbes - Disable kernel tracking on SMBus devices (rhbz 1482648) From e7b29c634e53c93b3d6496e7cf66bb4bc9136e72 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 12 Oct 2017 09:01:20 +0100 Subject: [PATCH 039/289] fix aarch64 errors about modprobe --- arm64-ensure-ready-for-userspace.patch | 79 ++++++++++++++++++++++++++ kernel.spec | 4 ++ 2 files changed, 83 insertions(+) create mode 100644 arm64-ensure-ready-for-userspace.patch diff --git a/arm64-ensure-ready-for-userspace.patch b/arm64-ensure-ready-for-userspace.patch new file mode 100644 index 000000000..2468e2271 --- /dev/null +++ b/arm64-ensure-ready-for-userspace.patch @@ -0,0 +1,79 @@ +From c0d8832e78cbfd4a64b7112e34920af4b0b0e60e Mon Sep 17 00:00:00 2001 +From: Suzuki K Poulose +Date: Fri, 6 Oct 2017 14:16:52 +0100 +Subject: arm64: Ensure the instruction emulation is ready for userspace + +We trap and emulate some instructions (e.g, mrs, deprecated instructions) +for the userspace. However the handlers for these are registered as +late_initcalls and the userspace could be up and running from the initramfs +by that time (with populate_rootfs, which is a rootfs_initcall()). This +could cause problems for the early applications ending up in failure +like : + +[ 11.152061] modprobe[93]: undefined instruction: pc=0000ffff8ca48ff4 + +This patch promotes the specific calls to core_initcalls, which are +guaranteed to be completed before we hit userspace. + +Cc: stable@vger.kernel.org +Cc: Dave Martin +Cc: Matthias Brugger +Cc: James Morse +Reported-by: Matwey V. Kornilov +Signed-off-by: Suzuki K Poulose +Signed-off-by: Catalin Marinas +--- + arch/arm64/kernel/armv8_deprecated.c | 2 +- + arch/arm64/kernel/cpufeature.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c +index f0e6d71..d06fbe4 100644 +--- a/arch/arm64/kernel/armv8_deprecated.c ++++ b/arch/arm64/kernel/armv8_deprecated.c +@@ -649,4 +649,4 @@ static int __init armv8_deprecated_init(void) + return 0; + } + +-late_initcall(armv8_deprecated_init); ++core_initcall(armv8_deprecated_init); +diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c +index cd52d36..21e2c95 100644 +--- a/arch/arm64/kernel/cpufeature.c ++++ b/arch/arm64/kernel/cpufeature.c +@@ -1307,4 +1307,4 @@ static int __init enable_mrs_emulation(void) + return 0; + } + +-late_initcall(enable_mrs_emulation); ++core_initcall(enable_mrs_emulation); +From ae2e972dae3cea795e9f8f94eb1601213c2d49f0 Mon Sep 17 00:00:00 2001 +From: Suzuki K Poulose +Date: Fri, 6 Oct 2017 14:16:53 +0100 +Subject: arm64: Ensure fpsimd support is ready before userspace is active + +We register the pm/hotplug callbacks for FPSIMD as late_initcall, +which happens after the userspace is active (from initramfs via +populate_rootfs, a rootfs_initcall). Make sure we are ready even +before the userspace could potentially use it, by promoting to +a core_initcall. + +Cc: Will Deacon +Cc: Mark Rutland +Cc: Dave Martin +Signed-off-by: Suzuki K Poulose +Signed-off-by: Catalin Marinas +--- + arch/arm64/kernel/fpsimd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c +index f444f37..5d547de 100644 +--- a/arch/arm64/kernel/fpsimd.c ++++ b/arch/arm64/kernel/fpsimd.c +@@ -444,4 +444,4 @@ static int __init fpsimd_init(void) + + return 0; + } +-late_initcall(fpsimd_init); ++core_initcall(fpsimd_init); diff --git a/kernel.spec b/kernel.spec index f89de5526..587f08377 100644 --- a/kernel.spec +++ b/kernel.spec @@ -650,6 +650,10 @@ Patch333: PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=synquacer-netsec Patch334: arm64-socionext-96b-enablement.patch +# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0d8832e78cbfd4a64b7112e34920af4b0b0e60e +# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae2e972dae3cea795e9f8f94eb1601213c2d49f0 +Patch350: arm64-ensure-ready-for-userspace.patch + # 400 - IBM (ppc/s390x) patches # 500 - Temp fixes/CVEs etc From f43f87d5aa78e40012190a818b5f781f7cea4d3c Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 12 Oct 2017 14:51:44 +0100 Subject: [PATCH 040/289] Fixes for Cavium ThunderX plaforms --- arm64-cavium-fixes.patch | 455 +++++++++++++++++++++++++++++++++++++++ kernel.spec | 6 + 2 files changed, 461 insertions(+) create mode 100644 arm64-cavium-fixes.patch diff --git a/arm64-cavium-fixes.patch b/arm64-cavium-fixes.patch new file mode 100644 index 000000000..a898bb779 --- /dev/null +++ b/arm64-cavium-fixes.patch @@ -0,0 +1,455 @@ +From c03847b4a603846903ee72a5e1baab03e0591423 Mon Sep 17 00:00:00 2001 +From: Ashok Kumar Sekar +Date: Fri, 23 Sep 2016 04:16:19 -0700 +Subject: [PATCH 1/8] PCI: Vulcan: AHCI PCI bar fix for Broadcom Vulcan early + silicon + +PCI BAR 5 is not setup correctly for the on-board AHCI +controller on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 +by using BAR 4's resources which are populated correctly but NOT used +by the AHCI controller actually. + +Signed-off-by: Ashok Kumar Sekar +Signed-off-by: Jayachandran C +Signed-off-by: Robert Richter +--- + drivers/pci/quirks.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index dc624fb34e72..94b7bdf63b19 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -3994,6 +3994,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, + quirk_bridge_cavm_thrx2_pcie_root); + + /* ++ * PCI BAR 5 is not setup correctly for the on-board AHCI controller ++ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by ++ * using BAR 4's resources which are populated correctly and NOT ++ * actually used by the AHCI controller. ++ */ ++static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) ++{ ++ struct resource *r = &dev->resource[4]; ++ ++ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) ++ return; ++ ++ /* Set BAR5 resource to BAR4 */ ++ dev->resource[5] = *r; ++ ++ /* Update BAR5 in pci config space */ ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); ++ ++ /* Clear BAR4's resource */ ++ memset(r, 0, sizeof(*r)); ++} ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); ++ ++/* + * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) + * class code. Fix it. + */ +-- +2.11.0 + +From c84892e4b6b671fda7e499a0bb0787bd026de015 Mon Sep 17 00:00:00 2001 +From: Jayachandran C +Date: Fri, 10 Mar 2017 10:04:52 +0000 +Subject: [PATCH 2/8] ahci: thunderx2: Fix for errata that affects stop engine + +Apply workaround for this errata: + Synopsis: Resetting PxCMD.ST may hang the SATA device + + Description: An internal ping-pong buffer state is not reset + correctly for an PxCMD.ST=0 command for a SATA channel. This + may cause the SATA interface to hang when a PxCMD.ST=0 command + is received. + + Workaround: A SATA_BIU_CORE_ENABLE.sw_init_bsi must be asserted + by the driver whenever the PxCMD.ST needs to be de-asserted. This + will reset both the ports. So, it may not always work in a 2 + channel SATA system. + + Resolution: Fix in B0. + +Add the code to ahci_stop_engine() to do this. It is not easy to +stop the other "port" since it is associated with a different AHCI +interface. Please note that with this fix, SATA reset does not +hang any more, but it can cause failures on the other interface +if that is in active use. + +Unfortunately, we have nothing other the the CPU ID to check if the +SATA block has this issue. + +Signed-off-by: Jayachandran C +[added check to restict to pci devs on the soc only] +Signed-off-by: Robert Richter +--- + drivers/ata/libahci.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c +index 3e286d86ab42..9116bba1b07d 100644 +--- a/drivers/ata/libahci.c ++++ b/drivers/ata/libahci.c +@@ -669,6 +669,23 @@ int ahci_stop_engine(struct ata_port *ap) + tmp &= ~PORT_CMD_START; + writel(tmp, port_mmio + PORT_CMD); + ++#ifdef CONFIG_ARM64 ++ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ ++ if (dev_is_pci(ap->host->dev) && ++ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && ++ to_pci_dev(ap->host->dev)->device == 0x9027 && ++ MIDR_IS_CPU_MODEL_RANGE(read_cpuid_id(), ++ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), ++ MIDR_CPU_VAR_REV(0, 0), ++ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { ++ tmp = readl(hpriv->mmio + 0x8000); ++ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); ++ udelay(1); ++ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); ++ dev_warn(ap->host->dev, "CN99XX stop engine fix applied!\n"); ++ } ++#endif ++ + /* wait for engine to stop. This could be as long as 500 msec */ + tmp = ata_wait_register(ap, port_mmio + PORT_CMD, + PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); +-- +2.11.0 + +From 98a39621952f6a13c5198e79f1c080ea6fc1d092 Mon Sep 17 00:00:00 2001 +From: Jayachandran C +Date: Sun, 22 Feb 1998 18:42:42 -0800 +Subject: [PATCH 3/8] ahci: thunderx2: stop engine fix update + +The current reset fix fails during continuous reboot test. The failure +happens when both the on-board SATA slots are used and when one of the +controllers are reset. + +The latest ThunderX2 firmware (3.1) enables hardware error interrupts and +when the reset fix fails, we get a hang with the print: +[ 14.839308] sd 1:0:0:0: [sdb] 468862128 512-byte logical blocks: (240 GB/224 GiB) +[ 14.846796] sd 1:0:0:0: [sdb] 4096-byte physical blocks +[ 14.852036] sd 1:0:0:0: [sdb] Write Protect is off +[ 14.856843] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA +[ 14.866022] ata2.00: Enabling discard_zeroes_data + + *** NBU BAR Error 0x1e25c *** + AddrLo 0x1d80180 AddrHi 0x0 + +To fix this issue, update the SATA reset fix to increase the delays between register writes. + +Signed-off-by: Jayachandran C +Signed-off-by: Robert Richter +--- + drivers/ata/libahci.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c +index 9116bba1b07d..1d3e614bad2b 100644 +--- a/drivers/ata/libahci.c ++++ b/drivers/ata/libahci.c +@@ -679,10 +679,11 @@ int ahci_stop_engine(struct ata_port *ap) + MIDR_CPU_VAR_REV(0, 0), + MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { + tmp = readl(hpriv->mmio + 0x8000); ++ udelay(100); + writel(tmp | (1 << 26), hpriv->mmio + 0x8000); +- udelay(1); ++ udelay(100); + writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); +- dev_warn(ap->host->dev, "CN99XX stop engine fix applied!\n"); ++ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); + } + #endif + +-- +2.11.0 + +From 33c107d2a2b570cd5246262108ad07cc102e9fcd Mon Sep 17 00:00:00 2001 +From: Robert Richter +Date: Thu, 16 Mar 2017 18:01:59 +0100 +Subject: [PATCH 4/8] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v2 + +In next IORT spec release there will be a definition of a Cavium +specific model. Until then, enable the Cavium SMMU using cpu id +registers. All versions of Cavium's SMMUv2 implementation must be +enabled. + +Signed-off-by: Robert Richter +--- + drivers/iommu/arm-smmu.c | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c +index d42cad5a3d52..37aee96ccc0e 100644 +--- a/drivers/iommu/arm-smmu.c ++++ b/drivers/iommu/arm-smmu.c +@@ -53,6 +53,8 @@ + + #include + ++#include ++ + #include "io-pgtable.h" + #include "arm-smmu-regs.h" + +@@ -1871,6 +1873,24 @@ static const struct of_device_id arm_smmu_of_match[] = { + MODULE_DEVICE_TABLE(of, arm_smmu_of_match); + + #ifdef CONFIG_ACPI ++ ++static int acpi_smmu_enable_cavium(struct arm_smmu_device *smmu, int ret) ++{ ++ u32 cpu_model; ++ ++ if (!IS_ENABLED(CONFIG_ARM64)) ++ return ret; ++ ++ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; ++ if (cpu_model != MIDR_THUNDERX) ++ return ret; ++ ++ smmu->version = ARM_SMMU_V2; ++ smmu->model = CAVIUM_SMMUV2; ++ ++ return 0; ++} ++ + static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu) + { + int ret = 0; +@@ -1901,7 +1921,7 @@ static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu) + ret = -ENODEV; + } + +- return ret; ++ return acpi_smmu_enable_cavium(smmu, ret); + } + + static int arm_smmu_device_acpi_probe(struct platform_device *pdev, +-- +2.11.0 + +From 5523edb06c95d7ac9e81d94366e71d929c08ebd4 Mon Sep 17 00:00:00 2001 +From: Robert Richter +Date: Wed, 12 Apr 2017 15:06:03 +0200 +Subject: [PATCH 5/8] iommu: Print a message with the default domain type + created + +There are several ways the bypass mode can be enabled. With commit + + fccb4e3b8ab0 iommu: Allow default domain type to be set on the kernel command line + +there is the option to switch into bypass mode. And, depending on +devicetree options, bypass mode can be also enabled. This makes it +hard to determine if direct mapping is enabled. Print message with the +default domain type case. + +Signed-off-by: Robert Richter +--- + drivers/iommu/iommu.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c +index 3f6ea160afed..7aaafaca6baf 100644 +--- a/drivers/iommu/iommu.c ++++ b/drivers/iommu/iommu.c +@@ -599,7 +599,9 @@ int iommu_group_add_device(struct iommu_group *group, struct device *dev) + + trace_add_device_to_group(group->id, dev); + +- pr_info("Adding device %s to group %d\n", dev_name(dev), group->id); ++ pr_info("Adding device %s to group %d, default domain type %d\n", ++ dev_name(dev), group->id, ++ group->default_domain ? group->default_domain->type : -1); + + return 0; + +-- +2.11.0 + +From 71e0ad5ab606077c24a96d69f4bfed58d7ef16c7 Mon Sep 17 00:00:00 2001 +From: Robert Richter +Date: Thu, 4 May 2017 17:48:48 +0200 +Subject: [PATCH 6/8] iommu, aarch64: Set bypass mode per default + +We see a performance degradation if smmu is enabled in non-bypass mode. +This is a problem in the kernel's implememntation. Until that is solved, +enable smmu in bypass mode per default. + +We have tested that SMMU passthrough mode doesn't effect VFIO on both +CN88xx and CN99xx and haven't found any issues. + +Signed-off-by: Robert Richter +--- + drivers/iommu/iommu.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c +index 7aaafaca6baf..24de0b934221 100644 +--- a/drivers/iommu/iommu.c ++++ b/drivers/iommu/iommu.c +@@ -36,7 +36,12 @@ + + static struct kset *iommu_group_kset; + static DEFINE_IDA(iommu_group_ida); ++ ++#ifdef CONFIG_ARM64 ++static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; ++#else + static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_DMA; ++#endif + + struct iommu_callback_data { + const struct iommu_ops *ops; +-- +2.11.0 + +From 27f103963f926d6a7a8adaad1ee227fd3b51f591 Mon Sep 17 00:00:00 2001 +From: Robert Richter +Date: Wed, 12 Apr 2017 10:31:15 +0200 +Subject: [PATCH 7/8] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v3 + +In next IORT spec release there will be a definition of a Cavium +specific model. Until then, enable the Cavium SMMU using cpu id +registers. Early silicon versions (A1) of Cavium's CN99xx SMMUv3 +implementation must be enabled. For later silicon versions (B0) the +iort change will be in place. + +Signed-off-by: Robert Richter +--- + drivers/acpi/arm64/iort.c | 16 ++++++++++++++-- + drivers/iommu/arm-smmu-v3.c | 19 +++++++++++++++++++ + 2 files changed, 33 insertions(+), 2 deletions(-) + +diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c +index a3215ee671c1..b603af92eec2 100644 +--- a/drivers/acpi/arm64/iort.c ++++ b/drivers/acpi/arm64/iort.c +@@ -26,6 +26,8 @@ + #include + #include + ++#include ++ + #define IORT_TYPE_MASK(type) (1 << (type)) + #define IORT_MSI_TYPE (1 << ACPI_IORT_NODE_ITS_GROUP) + #define IORT_IOMMU_TYPE ((1 << ACPI_IORT_NODE_SMMU) | \ +@@ -824,13 +826,22 @@ static int __init arm_smmu_v3_count_resources(struct acpi_iort_node *node) + return num_res; + } + ++static bool is_cavium_cn99xx_smmu_v3(void) ++{ ++ u32 cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; ++ ++ return cpu_model == MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, ++ BRCM_CPU_PART_VULCAN); ++} ++ + static bool arm_smmu_v3_is_combined_irq(struct acpi_iort_smmu_v3 *smmu) + { + /* + * Cavium ThunderX2 implementation doesn't not support unique + * irq line. Use single irq line for all the SMMUv3 interrupts. + */ +- if (smmu->model != ACPI_IORT_SMMU_V3_CAVIUM_CN99XX) ++ if (smmu->model != ACPI_IORT_SMMU_V3_CAVIUM_CN99XX ++ && !is_cavium_cn99xx_smmu_v3()) + return false; + + /* +@@ -848,7 +859,8 @@ static unsigned long arm_smmu_v3_resource_size(struct acpi_iort_smmu_v3 *smmu) + * Override the size, for Cavium ThunderX2 implementation + * which doesn't support the page 1 SMMU register space. + */ +- if (smmu->model == ACPI_IORT_SMMU_V3_CAVIUM_CN99XX) ++ if (smmu->model == ACPI_IORT_SMMU_V3_CAVIUM_CN99XX ++ || is_cavium_cn99xx_smmu_v3()) + return SZ_64K; + + return SZ_128K; +diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c +index 568c400eeaed..d147cb5c7309 100644 +--- a/drivers/iommu/arm-smmu-v3.c ++++ b/drivers/iommu/arm-smmu-v3.c +@@ -39,6 +39,8 @@ + + #include + ++#include ++ + #include "io-pgtable.h" + + /* MMIO registers */ +@@ -2659,6 +2661,21 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) + } + + #ifdef CONFIG_ACPI ++ ++static void acpi_smmu_enable_cavium(struct arm_smmu_device *smmu) ++{ ++ u32 cpu_model; ++ ++ if (!IS_ENABLED(CONFIG_ARM64)) ++ return; ++ ++ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; ++ if (cpu_model != MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN)) ++ return; ++ ++ smmu->options |= ARM_SMMU_OPT_PAGE0_REGS_ONLY; ++} ++ + static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu) + { + switch (model) { +@@ -2670,6 +2687,8 @@ static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu) + break; + } + ++ acpi_smmu_enable_cavium(smmu); ++ + dev_notice(smmu->dev, "option mask 0x%x\n", smmu->options); + } + +-- +2.11.0 + +From ff677cc625b52b93351dd73d7881251067f0e976 Mon Sep 17 00:00:00 2001 +From: Radha Mohan Chintakuntla +Date: Wed, 20 Aug 2014 15:10:58 -0700 +Subject: [PATCH 8/8] arm64: gicv3: its: Increase FORCE_MAX_ZONEORDER for + Cavium ThunderX + +In case of ARCH_THUNDER, there is a need to allocate the GICv3 ITS table +which is bigger than the allowed max order. So we are forcing it only in +case of 4KB page size. + +Signed-off-by: Radha Mohan Chintakuntla +[rric: use ARM64_4K_PAGES since we have now ARM64_16K_PAGES, change order] +Signed-off-by: Robert Richter +--- + arch/arm64/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index 2c3e2d693d76..023867378f45 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -784,6 +784,7 @@ config FORCE_MAX_ZONEORDER + default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) + default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES) + default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE) ++ default "13" if (ARM64_4K_PAGES && ARCH_THUNDER) + default "11" + help + The kernel memory allocator divides physically contiguous memory +-- +2.11.0 + diff --git a/kernel.spec b/kernel.spec index 587f08377..48362faf3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -650,6 +650,9 @@ Patch333: PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=synquacer-netsec Patch334: arm64-socionext-96b-enablement.patch +# ThunderX fixes +Patch335: arm64-cavium-fixes.patch + # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0d8832e78cbfd4a64b7112e34920af4b0b0e60e # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae2e972dae3cea795e9f8f94eb1601213c2d49f0 Patch350: arm64-ensure-ready-for-userspace.patch @@ -2255,6 +2258,9 @@ fi # # %changelog +* Thu Oct 12 2017 Peter Robinson +- Fixes for Cavium ThunderX plaforms + * Wed Oct 11 2017 Jeremy Cline - Fix incorrect updates of uninstantiated keys crash the kernel (rhbz 1498016 1498017) From 4ae8c94a386c255765627b1790118e684a9d30ce Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 12 Oct 2017 10:40:29 -0500 Subject: [PATCH 041/289] Linux v4.13.6 --- ...e-the-HID-device-is-opened-on-resume.patch | 74 ------ arm64-ensure-ready-for-userspace.patch | 79 ------ ...t-GPU-clocks-if-we-miss-the-pageflip.patch | 238 ++++++++++++++++++ kernel.spec | 11 +- sources | 2 +- 5 files changed, 247 insertions(+), 157 deletions(-) delete mode 100644 HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch delete mode 100644 arm64-ensure-ready-for-userspace.patch create mode 100644 drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch diff --git a/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch b/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch deleted file mode 100644 index d7d626972..000000000 --- a/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch +++ /dev/null @@ -1,74 +0,0 @@ -From patchwork Sun Jul 23 01:15:09 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: HID: rmi: Make sure the HID device is opened on resume -From: Lyude -X-Patchwork-Id: 9858267 -Message-Id: <20170723011509.23651-1-lyude@redhat.com> -To: linux-input@vger.kernel.org -Cc: Lyude , Andrew Duggan , - stable@vger.kernel.org, Jiri Kosina , - Benjamin Tissoires , - linux-kernel@vger.kernel.org -Date: Sat, 22 Jul 2017 21:15:09 -0400 - -So it looks like that suspend/resume has actually always been broken on -hid-rmi. The fact it worked was a rather silly coincidence that was -relying on the HID device to already be opened upon resume. This means -that so long as anything was reading the /dev/input/eventX node for for -an RMI device, it would suspend and resume correctly. As well, if -nothing happened to be keeping the HID device away it would shut off, -then the RMI driver would get confused on resume when it stopped -responding and explode. - -So, call hid_hw_open() in rmi_post_resume() so we make sure that the -device is alive before we try talking to it. - -This fixes RMI device suspend/resume over HID. - -Signed-off-by: Lyude -Cc: Andrew Duggan -Cc: stable@vger.kernel.org ---- - drivers/hid/hid-rmi.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - -diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c -index 5b40c2614599..e7d124f9a27f 100644 ---- a/drivers/hid/hid-rmi.c -+++ b/drivers/hid/hid-rmi.c -@@ -431,22 +431,29 @@ static int rmi_post_resume(struct hid_device *hdev) - { - struct rmi_data *data = hid_get_drvdata(hdev); - struct rmi_device *rmi_dev = data->xport.rmi_dev; -- int ret; -+ int ret = 0; - - if (!(data->device_flags & RMI_DEVICE)) - return 0; - -- ret = rmi_reset_attn_mode(hdev); -+ /* Make sure the HID device is ready to receive events */ -+ ret = hid_hw_open(hdev); - if (ret) - return ret; - -+ ret = rmi_reset_attn_mode(hdev); -+ if (ret) -+ goto out; -+ - ret = rmi_driver_resume(rmi_dev, false); - if (ret) { - hid_warn(hdev, "Failed to resume device: %d\n", ret); -- return ret; -+ goto out; - } - -- return 0; -+out: -+ hid_hw_close(hdev); -+ return ret; - } - #endif /* CONFIG_PM */ - diff --git a/arm64-ensure-ready-for-userspace.patch b/arm64-ensure-ready-for-userspace.patch deleted file mode 100644 index 2468e2271..000000000 --- a/arm64-ensure-ready-for-userspace.patch +++ /dev/null @@ -1,79 +0,0 @@ -From c0d8832e78cbfd4a64b7112e34920af4b0b0e60e Mon Sep 17 00:00:00 2001 -From: Suzuki K Poulose -Date: Fri, 6 Oct 2017 14:16:52 +0100 -Subject: arm64: Ensure the instruction emulation is ready for userspace - -We trap and emulate some instructions (e.g, mrs, deprecated instructions) -for the userspace. However the handlers for these are registered as -late_initcalls and the userspace could be up and running from the initramfs -by that time (with populate_rootfs, which is a rootfs_initcall()). This -could cause problems for the early applications ending up in failure -like : - -[ 11.152061] modprobe[93]: undefined instruction: pc=0000ffff8ca48ff4 - -This patch promotes the specific calls to core_initcalls, which are -guaranteed to be completed before we hit userspace. - -Cc: stable@vger.kernel.org -Cc: Dave Martin -Cc: Matthias Brugger -Cc: James Morse -Reported-by: Matwey V. Kornilov -Signed-off-by: Suzuki K Poulose -Signed-off-by: Catalin Marinas ---- - arch/arm64/kernel/armv8_deprecated.c | 2 +- - arch/arm64/kernel/cpufeature.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c -index f0e6d71..d06fbe4 100644 ---- a/arch/arm64/kernel/armv8_deprecated.c -+++ b/arch/arm64/kernel/armv8_deprecated.c -@@ -649,4 +649,4 @@ static int __init armv8_deprecated_init(void) - return 0; - } - --late_initcall(armv8_deprecated_init); -+core_initcall(armv8_deprecated_init); -diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c -index cd52d36..21e2c95 100644 ---- a/arch/arm64/kernel/cpufeature.c -+++ b/arch/arm64/kernel/cpufeature.c -@@ -1307,4 +1307,4 @@ static int __init enable_mrs_emulation(void) - return 0; - } - --late_initcall(enable_mrs_emulation); -+core_initcall(enable_mrs_emulation); -From ae2e972dae3cea795e9f8f94eb1601213c2d49f0 Mon Sep 17 00:00:00 2001 -From: Suzuki K Poulose -Date: Fri, 6 Oct 2017 14:16:53 +0100 -Subject: arm64: Ensure fpsimd support is ready before userspace is active - -We register the pm/hotplug callbacks for FPSIMD as late_initcall, -which happens after the userspace is active (from initramfs via -populate_rootfs, a rootfs_initcall). Make sure we are ready even -before the userspace could potentially use it, by promoting to -a core_initcall. - -Cc: Will Deacon -Cc: Mark Rutland -Cc: Dave Martin -Signed-off-by: Suzuki K Poulose -Signed-off-by: Catalin Marinas ---- - arch/arm64/kernel/fpsimd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c -index f444f37..5d547de 100644 ---- a/arch/arm64/kernel/fpsimd.c -+++ b/arch/arm64/kernel/fpsimd.c -@@ -444,4 +444,4 @@ static int __init fpsimd_init(void) - - return 0; - } --late_initcall(fpsimd_init); -+core_initcall(fpsimd_init); diff --git a/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch b/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch new file mode 100644 index 000000000..0bd0e7cef --- /dev/null +++ b/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch @@ -0,0 +1,238 @@ +From 333e2a813cdfb86ff286ece6f13bec371aa03d7b Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Thu, 17 Aug 2017 13:37:06 +0100 +Subject: [PATCH] drm/i915: Boost GPU clocks if we miss the pageflip's vblank +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If we miss the current vblank because the gpu was busy, that may cause a +jitter as the frame rate temporarily drops. We try to limit the impact +of this by then boosting the GPU clock to deliver the frame as quickly +as possible. Originally done in commit 6ad790c0f5ac ("drm/i915: Boost GPU +frequency if we detect outstanding pageflips") but was never forward +ported to atomic and finally dropped in commit fd3a40242e87 ("drm/i915: +Rip out legacy page_flip completion/irq handling"). + +One of the most typical use-cases for this is a mostly idle desktop. +Rendering one frame of the desktop's frontbuffer can easily be +accomplished by the GPU running at low frequency, but often exceeds +the time budget of the desktop compositor. The result is that animations +such as opening the menu, doing a fullscreen switch, or even just trying +to move a window around are slow and jerky. We need to respond within a +frame to give the best impression of a smooth UX, as a compromise we +instead respond if that first frame misses its goal. The result should +be a near-imperceivable initial delay and a smooth animation even +starting from idle. The cost, as ever, is that we spend more power than +is strictly necessary as we overestimate the required GPU frequency and +then try to ramp down. + +This of course is reactionary, too little, too late; nevertheless it is +surprisingly effective. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102199 +Signed-off-by: Chris Wilson +Cc: Maarten Lankhorst +Cc: Ville Syrjälä +Cc: Daniel Vetter +Link: https://patchwork.freedesktop.org/patch/msgid/20170817123706.6777-1-chris@chris-wilson.co.uk +Tested-by: Lyude Paul +Reviewed-by: Radoslaw Szwichtenberg +--- + drivers/gpu/drm/i915/i915_gem.c | 10 +++--- + drivers/gpu/drm/i915/intel_display.c | 63 ++++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/intel_pm.c | 14 ++++---- + 3 files changed, 77 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c +index 969bac8404f1..7d409b29d75a 100644 +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -355,6 +355,7 @@ i915_gem_object_wait_fence(struct dma_fence *fence, + long timeout, + struct intel_rps_client *rps) + { ++ unsigned long irq_flags; + struct drm_i915_gem_request *rq; + + BUILD_BUG_ON(I915_WAIT_INTERRUPTIBLE != 0x1); +@@ -410,9 +411,9 @@ i915_gem_object_wait_fence(struct dma_fence *fence, + * Compensate by giving the synchronous client credit for + * a waitboost next time. + */ +- spin_lock(&rq->i915->rps.client_lock); ++ spin_lock_irqsave(&rq->i915->rps.client_lock, irq_flags); + list_del_init(&rps->link); +- spin_unlock(&rq->i915->rps.client_lock); ++ spin_unlock_irqrestore(&rq->i915->rps.client_lock, irq_flags); + } + + return timeout; +@@ -5029,6 +5030,7 @@ void i915_gem_release(struct drm_device *dev, struct drm_file *file) + { + struct drm_i915_file_private *file_priv = file->driver_priv; + struct drm_i915_gem_request *request; ++ unsigned long flags; + + /* Clean up our request list when the client is going away, so that + * later retire_requests won't dereference our soon-to-be-gone +@@ -5040,9 +5042,9 @@ void i915_gem_release(struct drm_device *dev, struct drm_file *file) + spin_unlock(&file_priv->mm.lock); + + if (!list_empty(&file_priv->rps.link)) { +- spin_lock(&to_i915(dev)->rps.client_lock); ++ spin_lock_irqsave(&to_i915(dev)->rps.client_lock, flags); + list_del(&file_priv->rps.link); +- spin_unlock(&to_i915(dev)->rps.client_lock); ++ spin_unlock_irqrestore(&to_i915(dev)->rps.client_lock, flags); + } + } + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 022125082649..875eb7aec2f1 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -13301,6 +13301,58 @@ static const struct drm_crtc_funcs intel_crtc_funcs = { + .set_crc_source = intel_crtc_set_crc_source, + }; + ++struct wait_rps_boost { ++ struct wait_queue_entry wait; ++ ++ struct drm_crtc *crtc; ++ struct drm_i915_gem_request *request; ++}; ++ ++static int do_rps_boost(struct wait_queue_entry *_wait, ++ unsigned mode, int sync, void *key) ++{ ++ struct wait_rps_boost *wait = container_of(_wait, typeof(*wait), wait); ++ struct drm_i915_gem_request *rq = wait->request; ++ ++ gen6_rps_boost(rq->i915, NULL, rq->emitted_jiffies); ++ i915_gem_request_put(rq); ++ ++ drm_crtc_vblank_put(wait->crtc); ++ ++ list_del(&wait->wait.entry); ++ kfree(wait); ++ return 1; ++} ++ ++static void add_rps_boost_after_vblank(struct drm_crtc *crtc, ++ struct dma_fence *fence) ++{ ++ struct wait_rps_boost *wait; ++ ++ if (!dma_fence_is_i915(fence)) ++ return; ++ ++ if (INTEL_GEN(to_i915(crtc->dev)) < 6) ++ return; ++ ++ if (drm_crtc_vblank_get(crtc)) ++ return; ++ ++ wait = kmalloc(sizeof(*wait), GFP_KERNEL); ++ if (!wait) { ++ drm_crtc_vblank_put(crtc); ++ return; ++ } ++ ++ wait->request = to_request(dma_fence_get(fence)); ++ wait->crtc = crtc; ++ ++ wait->wait.func = do_rps_boost; ++ wait->wait.flags = 0; ++ ++ add_wait_queue(drm_crtc_vblank_waitqueue(crtc), &wait->wait); ++} ++ + /** + * intel_prepare_plane_fb - Prepare fb for usage on plane + * @plane: drm plane to prepare for +@@ -13392,6 +13444,8 @@ intel_prepare_plane_fb(struct drm_plane *plane, + return 0; + + if (!new_state->fence) { /* implicit fencing */ ++ struct dma_fence *fence; ++ + ret = i915_sw_fence_await_reservation(&intel_state->commit_ready, + obj->resv, NULL, + false, I915_FENCE_TIMEOUT, +@@ -13399,7 +13453,16 @@ intel_prepare_plane_fb(struct drm_plane *plane, + if (ret < 0) + return ret; + ++ fence = reservation_object_get_excl_rcu(obj->resv); ++ if (fence) { ++ add_rps_boost_after_vblank(new_state->crtc, fence); ++ dma_fence_put(fence); ++ } ++ + i915_gem_object_wait_priority(obj, 0, I915_PRIORITY_DISPLAY); ++ ++ } else { ++ add_rps_boost_after_vblank(new_state->crtc, new_state->fence); + } + + return 0; +diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c +index 40b224b44d1b..b0ee9c4d33f4 100644 +--- a/drivers/gpu/drm/i915/intel_pm.c ++++ b/drivers/gpu/drm/i915/intel_pm.c +@@ -6108,6 +6108,7 @@ void gen6_rps_busy(struct drm_i915_private *dev_priv) + + void gen6_rps_idle(struct drm_i915_private *dev_priv) + { ++ unsigned long flags; + /* Flush our bottom-half so that it does not race with us + * setting the idle frequency and so that it is bounded by + * our rpm wakeref. And then disable the interrupts to stop any +@@ -6127,16 +6128,17 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) + } + mutex_unlock(&dev_priv->rps.hw_lock); + +- spin_lock(&dev_priv->rps.client_lock); ++ spin_lock_irqsave(&dev_priv->rps.client_lock, flags); + while (!list_empty(&dev_priv->rps.clients)) + list_del_init(dev_priv->rps.clients.next); +- spin_unlock(&dev_priv->rps.client_lock); ++ spin_unlock_irqrestore(&dev_priv->rps.client_lock, flags); + } + + void gen6_rps_boost(struct drm_i915_private *dev_priv, + struct intel_rps_client *rps, + unsigned long submitted) + { ++ unsigned long flags; + /* This is intentionally racy! We peek at the state here, then + * validate inside the RPS worker. + */ +@@ -6151,14 +6153,14 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv, + if (rps && time_after(jiffies, submitted + DRM_I915_THROTTLE_JIFFIES)) + rps = NULL; + +- spin_lock(&dev_priv->rps.client_lock); ++ spin_lock_irqsave(&dev_priv->rps.client_lock, flags); + if (rps == NULL || list_empty(&rps->link)) { +- spin_lock_irq(&dev_priv->irq_lock); ++ spin_lock(&dev_priv->irq_lock); + if (dev_priv->rps.interrupts_enabled) { + dev_priv->rps.client_boost = true; + schedule_work(&dev_priv->rps.work); + } +- spin_unlock_irq(&dev_priv->irq_lock); ++ spin_unlock(&dev_priv->irq_lock); + + if (rps != NULL) { + list_add(&rps->link, &dev_priv->rps.clients); +@@ -6166,7 +6168,7 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv, + } else + dev_priv->rps.boosts++; + } +- spin_unlock(&dev_priv->rps.client_lock); ++ spin_unlock_irqrestore(&dev_priv->rps.client_lock, flags); + } + + int intel_set_rps(struct drm_i915_private *dev_priv, u8 val) diff --git a/kernel.spec b/kernel.spec index 48362faf3..0ccca855e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 5 +%define stable_update 6 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -655,7 +655,6 @@ Patch335: arm64-cavium-fixes.patch # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0d8832e78cbfd4a64b7112e34920af4b0b0e60e # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae2e972dae3cea795e9f8f94eb1601213c2d49f0 -Patch350: arm64-ensure-ready-for-userspace.patch # 400 - IBM (ppc/s390x) patches @@ -690,7 +689,6 @@ Patch619: pci-mark-amd-stoney-gpu-ats-as-broken.patch Patch622: qxl-fixes.patch # rhbz 1431375 -Patch623: HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch Patch624: input-rmi4-remove-the-need-for-artifical-IRQ.patch # rhbz 1432684 @@ -704,6 +702,9 @@ Patch629: 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch # rhbz 1482648 Patch630: Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch +# Headed upstream +Patch631: drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch + # END OF PATCH DEFINITIONS %endif @@ -2258,6 +2259,10 @@ fi # # %changelog +* Thu Oct 12 2017 Justin M. Forbes - 4.13.6-300 +- Linux v4.13.6 +- Fixes CVE-2017-1000255 (rhbz 1498067 1500335) + * Thu Oct 12 2017 Peter Robinson - Fixes for Cavium ThunderX plaforms diff --git a/sources b/sources index fedd63a3b..b44855500 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.5.xz) = de55b07e52e88e3bc5af54c619933a81f535393f20712f38000bffa77ded22c7a16e70e43c28daf576bcc6cd3ad39387b8e1f430e3d22222f572113d2345df48 +SHA512 (patch-4.13.6.xz) = 40e111f3969b622f982bfb75f8c35aa59d9989a627a4511d8e0090b0c7bbcafcc90567434f5166ef2d17831f0beddb52762107e523414523e1877f67f66ca3f7 From 1a4bd40a9207ac83009e8f827cb08c84c3d2aa09 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 12 Oct 2017 20:20:49 +0200 Subject: [PATCH 042/289] Fix vboxvideo causing gnome 3.26+ to not work under VirtualBox --- ...o-Fix-reporting-invalid-suggested-of.patch | 118 ++++++++++++++++++ kernel.spec | 6 + 2 files changed, 124 insertions(+) create mode 100644 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch diff --git a/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch b/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch new file mode 100644 index 000000000..695fcda36 --- /dev/null +++ b/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch @@ -0,0 +1,118 @@ +From 3b40f521aa2f42862203497a94ae77536f41ade2 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Thu, 12 Oct 2017 19:44:48 +0200 +Subject: [PATCH] staging: vboxvideo: Fix reporting invalid + suggested-offset-properties + +The x and y hints receives from the host are unsigned 32 bit integers and +they get set to -1 (0xffffffff) when invalid. Before this commit the +vboxvideo driver was storing them in an u16 causing the -1 to be truncated +to 65535 which, once reported to userspace, was breaking gnome 3.26+ +in Wayland mode. + +This commit stores the host values in 32 bit variables, removing the +truncation and checks for -1, replacing it with 0 as -1 is not a valid +suggested-offset-property value. Likewise the properties are now +initialized to 0 instead of -1, since -1 is not a valid value. +This fixes gnome 3.26+ in Wayland mode not working with the vboxvideo +driver. + +Reported-by: Gianfranco Costamagna +Cc: stable@vger.kernel.org +Cc: Michael Thayer +Signed-off-by: Hans de Goede +--- + drivers/staging/vboxvideo/vbox_drv.h | 8 ++++---- + drivers/staging/vboxvideo/vbox_irq.c | 4 ++-- + drivers/staging/vboxvideo/vbox_mode.c | 26 ++++++++++++++++++-------- + 3 files changed, 24 insertions(+), 14 deletions(-) + +diff --git a/drivers/staging/vboxvideo/vbox_drv.h b/drivers/staging/vboxvideo/vbox_drv.h +index 4b9302703b36..eeac4f0cb2c6 100644 +--- a/drivers/staging/vboxvideo/vbox_drv.h ++++ b/drivers/staging/vboxvideo/vbox_drv.h +@@ -137,8 +137,8 @@ struct vbox_connector { + char name[32]; + struct vbox_crtc *vbox_crtc; + struct { +- u16 width; +- u16 height; ++ u32 width; ++ u32 height; + bool disconnected; + } mode_hint; + }; +@@ -150,8 +150,8 @@ struct vbox_crtc { + unsigned int crtc_id; + u32 fb_offset; + bool cursor_enabled; +- u16 x_hint; +- u16 y_hint; ++ u32 x_hint; ++ u32 y_hint; + }; + + struct vbox_encoder { +diff --git a/drivers/staging/vboxvideo/vbox_irq.c b/drivers/staging/vboxvideo/vbox_irq.c +index 3ca8bec62ac4..74abdf02d9fd 100644 +--- a/drivers/staging/vboxvideo/vbox_irq.c ++++ b/drivers/staging/vboxvideo/vbox_irq.c +@@ -150,8 +150,8 @@ static void vbox_update_mode_hints(struct vbox_private *vbox) + + disconnected = !(hints->enabled); + crtc_id = vbox_conn->vbox_crtc->crtc_id; +- vbox_conn->mode_hint.width = hints->cx & 0x8fff; +- vbox_conn->mode_hint.height = hints->cy & 0x8fff; ++ vbox_conn->mode_hint.width = hints->cx; ++ vbox_conn->mode_hint.height = hints->cy; + vbox_conn->vbox_crtc->x_hint = hints->dx; + vbox_conn->vbox_crtc->y_hint = hints->dy; + vbox_conn->mode_hint.disconnected = disconnected; +diff --git a/drivers/staging/vboxvideo/vbox_mode.c b/drivers/staging/vboxvideo/vbox_mode.c +index 257a77830410..6f08dc966719 100644 +--- a/drivers/staging/vboxvideo/vbox_mode.c ++++ b/drivers/staging/vboxvideo/vbox_mode.c +@@ -553,12 +553,22 @@ static int vbox_get_modes(struct drm_connector *connector) + ++num_modes; + } + vbox_set_edid(connector, preferred_width, preferred_height); +- drm_object_property_set_value( +- &connector->base, vbox->dev->mode_config.suggested_x_property, +- vbox_connector->vbox_crtc->x_hint); +- drm_object_property_set_value( +- &connector->base, vbox->dev->mode_config.suggested_y_property, +- vbox_connector->vbox_crtc->y_hint); ++ ++ if (vbox_connector->vbox_crtc->x_hint != -1) ++ drm_object_property_set_value(&connector->base, ++ vbox->dev->mode_config.suggested_x_property, ++ vbox_connector->vbox_crtc->x_hint); ++ else ++ drm_object_property_set_value(&connector->base, ++ vbox->dev->mode_config.suggested_x_property, 0); ++ ++ if (vbox_connector->vbox_crtc->y_hint != -1) ++ drm_object_property_set_value(&connector->base, ++ vbox->dev->mode_config.suggested_y_property, ++ vbox_connector->vbox_crtc->y_hint); ++ else ++ drm_object_property_set_value(&connector->base, ++ vbox->dev->mode_config.suggested_y_property, 0); + + return num_modes; + } +@@ -640,9 +650,9 @@ static int vbox_connector_init(struct drm_device *dev, + + drm_mode_create_suggested_offset_properties(dev); + drm_object_attach_property(&connector->base, +- dev->mode_config.suggested_x_property, -1); ++ dev->mode_config.suggested_x_property, 0); + drm_object_attach_property(&connector->base, +- dev->mode_config.suggested_y_property, -1); ++ dev->mode_config.suggested_y_property, 0); + drm_connector_register(connector); + + drm_mode_connector_attach_encoder(connector, encoder); +-- +2.14.2 + diff --git a/kernel.spec b/kernel.spec index 0ccca855e..15fb40800 100644 --- a/kernel.spec +++ b/kernel.spec @@ -705,6 +705,9 @@ Patch630: Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch # Headed upstream Patch631: drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch +# fix gnome 3.26+ not working under VirtualBox, submitted upstream, Cc: Stable +Patch632: 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch + # END OF PATCH DEFINITIONS %endif @@ -2259,6 +2262,9 @@ fi # # %changelog +* Thu Oct 12 2017 Hans de Goede +- Fix vboxvideo causing gnome 3.26+ to not work under VirtualBox + * Thu Oct 12 2017 Justin M. Forbes - 4.13.6-300 - Linux v4.13.6 - Fixes CVE-2017-1000255 (rhbz 1498067 1500335) From 1afd1b9af203049bc9fef3e5653bfa35624ed07e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 15 Oct 2017 09:44:09 +0100 Subject: [PATCH 043/289] Fix USB-3 Superspeed negotiation on exynos5 hardware# --- arm-exynos-fix-usb3.patch | 411 ++++++++++++++++++++++++++++++++++++++ kernel.spec | 6 +- 2 files changed, 415 insertions(+), 2 deletions(-) create mode 100644 arm-exynos-fix-usb3.patch diff --git a/arm-exynos-fix-usb3.patch b/arm-exynos-fix-usb3.patch new file mode 100644 index 000000000..cb5828acf --- /dev/null +++ b/arm-exynos-fix-usb3.patch @@ -0,0 +1,411 @@ +From patchwork Mon Oct 9 12:00:50 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [PATCHv4,1/2] drivers: phy: add calibrate method +From: Andrzej Pietrasiewicz +X-Patchwork-Id: 9992829 +Message-Id: <1507550451-21324-2-git-send-email-andrzej.p@samsung.com> +To: linux-samsung-soc@vger.kernel.org, linux-usb@vger.kernel.org, + linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org +Cc: Mark Rutland , Felipe Balbi , + Bartlomiej Zolnierkiewicz , + Greg Kroah-Hartman , + Russell King , + Krzysztof Kozlowski , + Kishon Vijay Abraham I , + Rob Herring , Kukjin Kim , + Andrzej Pietrasiewicz , + Marek Szyprowski +Date: Mon, 09 Oct 2017 14:00:50 +0200 + +Some quirky UDCs (like dwc3 on Exynos) need to have their phys calibrated e.g. +for using super speed. This patch adds a new phy_calibrate() method. +When the calibration should be used is dependent on actual chip. + +In case of dwc3 on Exynos the calibration must happen after usb_add_hcd() +(while in host mode), because certain phy parameters like Tx LOS levels +and boost levels need to be calibrated further post initialization of xHCI +controller, to get SuperSpeed operations working. But an hcd must be +prepared first in order to pass it to usb_add_hcd(), so, in particular, dwc3 +registers must be available first, and in order for the latter to happen +the phys must be initialized. This poses a chicken and egg problem if +the calibration were to be performed in phy_init(). To break the circular +dependency a separate method is added which can be called at a desired +moment after phy intialization. + +Signed-off-by: Andrzej Pietrasiewicz +--- + drivers/phy/phy-core.c | 15 +++++++++++++++ + include/linux/phy/phy.h | 10 ++++++++++ + 2 files changed, 25 insertions(+) + +diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c +index a268f4d..b4964b0 100644 +--- a/drivers/phy/phy-core.c ++++ b/drivers/phy/phy-core.c +@@ -372,6 +372,21 @@ int phy_reset(struct phy *phy) + } + EXPORT_SYMBOL_GPL(phy_reset); + ++int phy_calibrate(struct phy *phy) ++{ ++ int ret; ++ ++ if (!phy || !phy->ops->calibrate) ++ return 0; ++ ++ mutex_lock(&phy->mutex); ++ ret = phy->ops->calibrate(phy); ++ mutex_unlock(&phy->mutex); ++ ++ return ret; ++} ++EXPORT_SYMBOL_GPL(phy_calibrate); ++ + /** + * _of_phy_get() - lookup and obtain a reference to a phy by phandle + * @np: device_node for which to get the phy +diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h +index e694d40..87580c8 100644 +--- a/include/linux/phy/phy.h ++++ b/include/linux/phy/phy.h +@@ -39,6 +39,7 @@ enum phy_mode { + * @power_off: powering off the phy + * @set_mode: set the mode of the phy + * @reset: resetting the phy ++ * @calibrate: calibrate the phy + * @owner: the module owner containing the ops + */ + struct phy_ops { +@@ -48,6 +49,7 @@ struct phy_ops { + int (*power_off)(struct phy *phy); + int (*set_mode)(struct phy *phy, enum phy_mode mode); + int (*reset)(struct phy *phy); ++ int (*calibrate)(struct phy *phy); + struct module *owner; + }; + +@@ -141,6 +143,7 @@ static inline void *phy_get_drvdata(struct phy *phy) + int phy_power_off(struct phy *phy); + int phy_set_mode(struct phy *phy, enum phy_mode mode); + int phy_reset(struct phy *phy); ++int phy_calibrate(struct phy *phy); + static inline int phy_get_bus_width(struct phy *phy) + { + return phy->attrs.bus_width; +@@ -262,6 +265,13 @@ static inline int phy_reset(struct phy *phy) + return -ENOSYS; + } + ++static inline int phy_calibrate(struct phy *phy) ++{ ++ if (!phy) ++ return 0; ++ return -ENOSYS; ++} ++ + static inline int phy_get_bus_width(struct phy *phy) + { + return -ENOSYS; +From patchwork Mon Oct 9 12:00:51 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [PATCHv4, + 2/2] phy: exynos5-usbdrd: Calibrate LOS levels for exynos5420/5800 +From: Andrzej Pietrasiewicz +X-Patchwork-Id: 9992809 +Message-Id: <1507550451-21324-3-git-send-email-andrzej.p@samsung.com> +To: linux-samsung-soc@vger.kernel.org, linux-usb@vger.kernel.org, + linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org +Cc: Mark Rutland , Felipe Balbi , + Bartlomiej Zolnierkiewicz , + Greg Kroah-Hartman , + Russell King , + Krzysztof Kozlowski , + Kishon Vijay Abraham I , + Rob Herring , Kukjin Kim , + Andrzej Pietrasiewicz , + Marek Szyprowski +Date: Mon, 09 Oct 2017 14:00:51 +0200 + +From: Vivek Gautam + +Adding phy calibration sequence for USB 3.0 DRD PHY present on +Exynos5420/5800 systems. +This calibration facilitates setting certain PHY parameters viz. +the Loss-of-Signal (LOS) Detector Threshold Level, as well as +Tx-Vboost-Level for Super-Speed operations. +Additionally we also set proper time to wait for RxDetect measurement, +for desired PHY reference clock, so as to solve issue with enumeration +of few USB 3.0 devices, like Samsung SUM-TSB16S 3.0 USB drive +on the controller. + +We are using CR_port for this purpose to send required data +to override the LOS values. + +On testing with USB 3.0 devices on USB 3.0 port present on +SMDK5420, and peach-pit boards should see following message: +usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd + +and without this patch, should see below shown message: +usb 1-1: new high-speed USB device number 2 using xhci-hcd + +[Also removed unnecessary extra lines in the register macro definitions] + +Signed-off-by: Vivek Gautam +[adapted to use phy_calibrate as entry point] +Signed-off-by: Andrzej Pietrasiewicz +--- + drivers/phy/samsung/phy-exynos5-usbdrd.c | 183 +++++++++++++++++++++++++++++++ + drivers/usb/dwc3/core.c | 7 +- + 2 files changed, 188 insertions(+), 2 deletions(-) + +diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c +index 22c68f5..9e83c15 100644 +--- a/drivers/phy/samsung/phy-exynos5-usbdrd.c ++++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c +@@ -90,7 +90,17 @@ + #define PHYCLKRST_COMMONONN BIT(0) + + #define EXYNOS5_DRD_PHYREG0 0x14 ++#define PHYREG0_SSC_REF_CLK_SEL BIT(21) ++#define PHYREG0_SSC_RANGE BIT(20) ++#define PHYREG0_CR_WRITE BIT(19) ++#define PHYREG0_CR_READ BIT(18) ++#define PHYREG0_CR_DATA_IN(_x) ((_x) << 2) ++#define PHYREG0_CR_CAP_DATA BIT(1) ++#define PHYREG0_CR_CAP_ADDR BIT(0) ++ + #define EXYNOS5_DRD_PHYREG1 0x18 ++#define PHYREG1_CR_DATA_OUT(_x) ((_x) << 1) ++#define PHYREG1_CR_ACK BIT(0) + + #define EXYNOS5_DRD_PHYPARAM0 0x1c + +@@ -119,6 +129,25 @@ + #define EXYNOS5_DRD_PHYRESUME 0x34 + #define EXYNOS5_DRD_LINKPORT 0x44 + ++/* USB 3.0 DRD PHY SS Function Control Reg; accessed by CR_PORT */ ++#define EXYNOS5_DRD_PHYSS_LOSLEVEL_OVRD_IN (0x15) ++#define LOSLEVEL_OVRD_IN_LOS_BIAS_5420 (0x5 << 13) ++#define LOSLEVEL_OVRD_IN_LOS_BIAS_DEFAULT (0x0 << 13) ++#define LOSLEVEL_OVRD_IN_EN (0x1 << 10) ++#define LOSLEVEL_OVRD_IN_LOS_LEVEL_DEFAULT (0x9 << 0) ++ ++#define EXYNOS5_DRD_PHYSS_TX_VBOOSTLEVEL_OVRD_IN (0x12) ++#define TX_VBOOSTLEVEL_OVRD_IN_VBOOST_5420 (0x5 << 13) ++#define TX_VBOOSTLEVEL_OVRD_IN_VBOOST_DEFAULT (0x4 << 13) ++ ++#define EXYNOS5_DRD_PHYSS_LANE0_TX_DEBUG (0x1010) ++#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_19M2_20M (0x4 << 4) ++#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_24M (0x8 << 4) ++#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_25M_26M (0x8 << 4) ++#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_48M_50M_52M (0x20 << 4) ++#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_62M5 (0x20 << 4) ++#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_96M_100M (0x40 << 4) ++ + #define KHZ 1000 + #define MHZ (KHZ * KHZ) + +@@ -527,6 +556,151 @@ static int exynos5_usbdrd_phy_power_off(struct phy *phy) + return 0; + } + ++static int crport_handshake(struct exynos5_usbdrd_phy *phy_drd, ++ u32 val, u32 cmd) ++{ ++ u32 usec = 100; ++ unsigned int result; ++ ++ writel(val | cmd, phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0); ++ ++ do { ++ result = readl(phy_drd->reg_phy + EXYNOS5_DRD_PHYREG1); ++ if (result & PHYREG1_CR_ACK) ++ break; ++ ++ udelay(1); ++ } while (usec-- > 0); ++ ++ if (!usec) { ++ dev_err(phy_drd->dev, ++ "CRPORT handshake timeout1 (0x%08x)\n", val); ++ return -ETIME; ++ } ++ ++ usec = 100; ++ ++ writel(val, phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0); ++ ++ do { ++ result = readl(phy_drd->reg_phy + EXYNOS5_DRD_PHYREG1); ++ if (!(result & PHYREG1_CR_ACK)) ++ break; ++ ++ udelay(1); ++ } while (usec-- > 0); ++ ++ if (!usec) { ++ dev_err(phy_drd->dev, ++ "CRPORT handshake timeout2 (0x%08x)\n", val); ++ return -ETIME; ++ } ++ ++ return 0; ++} ++ ++static int crport_ctrl_write(struct exynos5_usbdrd_phy *phy_drd, ++ u32 addr, u32 data) ++{ ++ int ret; ++ ++ /* Write Address */ ++ writel(PHYREG0_CR_DATA_IN(addr), ++ phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0); ++ ret = crport_handshake(phy_drd, PHYREG0_CR_DATA_IN(addr), ++ PHYREG0_CR_CAP_ADDR); ++ if (ret) ++ return ret; ++ ++ /* Write Data */ ++ writel(PHYREG0_CR_DATA_IN(data), ++ phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0); ++ ret = crport_handshake(phy_drd, PHYREG0_CR_DATA_IN(data), ++ PHYREG0_CR_CAP_DATA); ++ if (ret) ++ return ret; ++ ++ ret = crport_handshake(phy_drd, PHYREG0_CR_DATA_IN(data), ++ PHYREG0_CR_WRITE); ++ ++ return ret; ++} ++ ++/* ++ * Calibrate few PHY parameters using CR_PORT register to meet ++ * SuperSpeed requirements on Exynos5420 and Exynos5800 systems, ++ * which have 28nm USB 3.0 DRD PHY. ++ */ ++static int exynos5420_usbdrd_phy_calibrate(struct exynos5_usbdrd_phy *phy_drd) ++{ ++ unsigned int temp; ++ int ret = 0; ++ ++ /* ++ * Change los_bias to (0x5) for 28nm PHY from a ++ * default value (0x0); los_level is set as default ++ * (0x9) as also reflected in los_level[30:26] bits ++ * of PHYPARAM0 register. ++ */ ++ temp = LOSLEVEL_OVRD_IN_LOS_BIAS_5420 | ++ LOSLEVEL_OVRD_IN_EN | ++ LOSLEVEL_OVRD_IN_LOS_LEVEL_DEFAULT; ++ ret = crport_ctrl_write(phy_drd, ++ EXYNOS5_DRD_PHYSS_LOSLEVEL_OVRD_IN, ++ temp); ++ if (ret) { ++ dev_err(phy_drd->dev, ++ "Failed setting Loss-of-Signal level for SuperSpeed\n"); ++ return ret; ++ } ++ ++ /* ++ * Set tx_vboost_lvl to (0x5) for 28nm PHY Tuning, ++ * to raise Tx signal level from its default value of (0x4) ++ */ ++ temp = TX_VBOOSTLEVEL_OVRD_IN_VBOOST_5420; ++ ret = crport_ctrl_write(phy_drd, ++ EXYNOS5_DRD_PHYSS_TX_VBOOSTLEVEL_OVRD_IN, ++ temp); ++ if (ret) { ++ dev_err(phy_drd->dev, ++ "Failed setting Tx-Vboost-Level for SuperSpeed\n"); ++ return ret; ++ } ++ ++ /* ++ * Set proper time to wait for RxDetect measurement, for ++ * desired reference clock of PHY, by tuning the CR_PORT ++ * register LANE0.TX_DEBUG which is internal to PHY. ++ * This fixes issue with few USB 3.0 devices, which are ++ * not detected (not even generate interrupts on the bus ++ * on insertion) without this change. ++ * e.g. Samsung SUM-TSB16S 3.0 USB drive. ++ */ ++ switch (phy_drd->extrefclk) { ++ case EXYNOS5_FSEL_50MHZ: ++ temp = LANE0_TX_DEBUG_RXDET_MEAS_TIME_48M_50M_52M; ++ break; ++ case EXYNOS5_FSEL_20MHZ: ++ case EXYNOS5_FSEL_19MHZ2: ++ temp = LANE0_TX_DEBUG_RXDET_MEAS_TIME_19M2_20M; ++ break; ++ case EXYNOS5_FSEL_24MHZ: ++ default: ++ temp = LANE0_TX_DEBUG_RXDET_MEAS_TIME_24M; ++ break; ++ } ++ ++ ret = crport_ctrl_write(phy_drd, ++ EXYNOS5_DRD_PHYSS_LANE0_TX_DEBUG, ++ temp); ++ if (ret) ++ dev_err(phy_drd->dev, ++ "Failed setting RxDetect measurement time for SuperSpeed\n"); ++ ++ return ret; ++} ++ + static struct phy *exynos5_usbdrd_phy_xlate(struct device *dev, + struct of_phandle_args *args) + { +@@ -538,11 +712,20 @@ static struct phy *exynos5_usbdrd_phy_xlate(struct device *dev, + return phy_drd->phys[args->args[0]].phy; + } + ++static int exynos5_usbdrd_phy_calibrate(struct phy *phy) ++{ ++ struct phy_usb_instance *inst = phy_get_drvdata(phy); ++ struct exynos5_usbdrd_phy *phy_drd = to_usbdrd_phy(inst); ++ ++ return exynos5420_usbdrd_phy_calibrate(phy_drd); ++} ++ + static const struct phy_ops exynos5_usbdrd_phy_ops = { + .init = exynos5_usbdrd_phy_init, + .exit = exynos5_usbdrd_phy_exit, + .power_on = exynos5_usbdrd_phy_power_on, + .power_off = exynos5_usbdrd_phy_power_off, ++ .calibrate = exynos5_usbdrd_phy_calibrate, + .owner = THIS_MODULE, + }; + +diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c +index 03474d3..224e0dd 100644 +--- a/drivers/usb/dwc3/core.c ++++ b/drivers/usb/dwc3/core.c +@@ -156,9 +156,10 @@ static void __dwc3_set_mode(struct work_struct *work) + } else { + if (dwc->usb2_phy) + otg_set_vbus(dwc->usb2_phy->otg, true); +- if (dwc->usb2_generic_phy) ++ if (dwc->usb2_generic_phy) { + phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST); +- ++ phy_calibrate(dwc->usb2_generic_phy); ++ } + } + break; + case DWC3_GCTL_PRTCAP_DEVICE: +@@ -955,6 +956,8 @@ static int dwc3_core_init_mode(struct dwc3 *dwc) + dev_err(dev, "failed to initialize host\n"); + return ret; + } ++ if (dwc->usb2_generic_phy) ++ phy_calibrate(dwc->usb2_generic_phy); + break; + case USB_DR_MODE_OTG: + INIT_WORK(&dwc->drd_work, __dwc3_set_mode); diff --git a/kernel.spec b/kernel.spec index 15fb40800..7aab88abe 100644 --- a/kernel.spec +++ b/kernel.spec @@ -653,8 +653,7 @@ Patch334: arm64-socionext-96b-enablement.patch # ThunderX fixes Patch335: arm64-cavium-fixes.patch -# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0d8832e78cbfd4a64b7112e34920af4b0b0e60e -# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ae2e972dae3cea795e9f8f94eb1601213c2d49f0 +Patch336: arm-exynos-fix-usb3.patch # 400 - IBM (ppc/s390x) patches @@ -2262,6 +2261,9 @@ fi # # %changelog +* Sun Oct 15 2017 Peter Robinson +- Fix USB-3 Superspeed negotiation on exynos5 hardware + * Thu Oct 12 2017 Hans de Goede - Fix vboxvideo causing gnome 3.26+ to not work under VirtualBox From 225f5440d98cd7b198139225799b8f0ec6052c26 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 15 Oct 2017 09:48:14 +0100 Subject: [PATCH 044/289] add rhbz details for exynos usb3 fix --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 7aab88abe..803bc8cad 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2262,7 +2262,7 @@ fi # %changelog * Sun Oct 15 2017 Peter Robinson -- Fix USB-3 Superspeed negotiation on exynos5 hardware +- Fix USB-3 Superspeed negotiation on exynos5 hardware (rhbz 1487006) * Thu Oct 12 2017 Hans de Goede - Fix vboxvideo causing gnome 3.26+ to not work under VirtualBox From 85eb3a6c803e8b2d044086460e211e9c691c69a1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 15 Oct 2017 22:40:22 +0100 Subject: [PATCH 045/289] minor arm64 allwinner config tweak --- baseconfig/arm/{armv7 => }/CONFIG_SUNXI_SRAM | 0 kernel-aarch64-debug.config | 1 + kernel-aarch64.config | 1 + 3 files changed, 2 insertions(+) rename baseconfig/arm/{armv7 => }/CONFIG_SUNXI_SRAM (100%) diff --git a/baseconfig/arm/armv7/CONFIG_SUNXI_SRAM b/baseconfig/arm/CONFIG_SUNXI_SRAM similarity index 100% rename from baseconfig/arm/armv7/CONFIG_SUNXI_SRAM rename to baseconfig/arm/CONFIG_SUNXI_SRAM diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index ce979b0fb..c5f3d5c80 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -5456,6 +5456,7 @@ CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m +CONFIG_SUNXI_SRAM=y CONFIG_SUNXI_WATCHDOG=m # CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 70a552b53..1b22c1fa3 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -5433,6 +5433,7 @@ CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUNXI_CCU=y CONFIG_SUNXI_RSB=m +CONFIG_SUNXI_SRAM=y CONFIG_SUNXI_WATCHDOG=m # CONFIG_SURFACE_3_BUTTON is not set CONFIG_SUSPEND=y From c934db06bff88f479996db754bb7b3e21fb63450 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 16 Oct 2017 13:10:08 +0100 Subject: [PATCH 046/289] Some AllWinner A64 fixes and improvements --- arm64-aw64-devices.patch | 712 +++++++++++++++++++++++++++++++++++++++ kernel.spec | 3 + 2 files changed, 715 insertions(+) create mode 100644 arm64-aw64-devices.patch diff --git a/arm64-aw64-devices.patch b/arm64-aw64-devices.patch new file mode 100644 index 000000000..94b1b2b04 --- /dev/null +++ b/arm64-aw64-devices.patch @@ -0,0 +1,712 @@ +From 4c0a84757b5a0365a5dde82e732972eda80a32b1 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Thu, 18 May 2017 15:16:51 +0800 +Subject: arm64: allwinner: a64: add DTSI file for AXP803 PMIC + +As nearly all A64 boards are using AXP803 PMIC, add a DTSI file for it, +like the old DTSI files for AXP20x/22x, for the common parts of the +PMIC. + +Signed-off-by: Icenowy Zheng +Acked-by: Mark Brown +Signed-off-by: Chen-Yu Tsai +--- + arch/arm64/boot/dts/allwinner/axp803.dtsi | 150 ++++++++++++++++++++++++++++++ + 1 file changed, 150 insertions(+) + create mode 100644 arch/arm64/boot/dts/allwinner/axp803.dtsi + +diff --git a/arch/arm64/boot/dts/allwinner/axp803.dtsi b/arch/arm64/boot/dts/allwinner/axp803.dtsi +new file mode 100644 +index 0000000..ff8af52 +--- /dev/null ++++ b/arch/arm64/boot/dts/allwinner/axp803.dtsi +@@ -0,0 +1,150 @@ ++/* ++ * Copyright 2017 Icenowy Zheng ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/* ++ * AXP803 Integrated Power Management Chip ++ * http://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf ++ */ ++ ++&axp803 { ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ ++ regulators { ++ /* Default work frequency for buck regulators */ ++ x-powers,dcdc-freq = <3000>; ++ ++ reg_aldo1: aldo1 { ++ regulator-name = "aldo1"; ++ }; ++ ++ reg_aldo2: aldo2 { ++ regulator-name = "aldo2"; ++ }; ++ ++ reg_aldo3: aldo3 { ++ regulator-name = "aldo3"; ++ }; ++ ++ reg_dc1sw: dc1sw { ++ regulator-name = "dc1sw"; ++ }; ++ ++ reg_dcdc1: dcdc1 { ++ regulator-name = "dcdc1"; ++ }; ++ ++ reg_dcdc2: dcdc2 { ++ regulator-name = "dcdc2"; ++ }; ++ ++ reg_dcdc3: dcdc3 { ++ regulator-name = "dcdc3"; ++ }; ++ ++ reg_dcdc4: dcdc4 { ++ regulator-name = "dcdc4"; ++ }; ++ ++ reg_dcdc5: dcdc5 { ++ regulator-name = "dcdc5"; ++ }; ++ ++ reg_dcdc6: dcdc6 { ++ regulator-name = "dcdc6"; ++ }; ++ ++ reg_dldo1: dldo1 { ++ regulator-name = "dldo1"; ++ }; ++ ++ reg_dldo2: dldo2 { ++ regulator-name = "dldo2"; ++ }; ++ ++ reg_dldo3: dldo3 { ++ regulator-name = "dldo3"; ++ }; ++ ++ reg_dldo4: dldo4 { ++ regulator-name = "dldo4"; ++ }; ++ ++ reg_eldo1: eldo1 { ++ regulator-name = "eldo1"; ++ }; ++ ++ reg_eldo2: eldo2 { ++ regulator-name = "eldo2"; ++ }; ++ ++ reg_eldo3: eldo3 { ++ regulator-name = "eldo3"; ++ }; ++ ++ reg_fldo1: fldo1 { ++ regulator-name = "fldo1"; ++ }; ++ ++ reg_fldo2: fldo2 { ++ regulator-name = "fldo2"; ++ }; ++ ++ reg_ldo_io0: ldo-io0 { ++ regulator-name = "ldo-io0"; ++ status = "disabled"; ++ }; ++ ++ reg_ldo_io1: ldo-io1 { ++ regulator-name = "ldo-io1"; ++ status = "disabled"; ++ }; ++ ++ reg_rtc_ldo: rtc-ldo { ++ /* RTC_LDO is a fixed, always-on regulator */ ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "rtc-ldo"; ++ }; ++ }; ++}; +-- +cgit v1.1 +From 535ca50858e2d8bf1618ace056cd96f0b3d01133 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Tue, 6 Jun 2017 13:59:32 +0800 +Subject: arm64: allwinner: a64: add NMI (R_INTC) controller on A64 + +Allwinner A64 SoC features a R_INTC controller, which controls the NMI +line, and this interrupt line is usually connected to the AXP PMIC. + +Add support for it. + +Signed-off-by: Icenowy Zheng +[wens@csie.org: Add fallback sun6i-a31-r-intc compatible] +Signed-off-by: Chen-Yu Tsai +Acked-by: Maxime Ripard +--- + arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +index 9d00622..78c7c9d 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +@@ -487,6 +487,15 @@ + ; + }; + ++ r_intc: interrupt-controller@1f00c00 { ++ compatible = "allwinner,sun50i-a64-r-intc", ++ "allwinner,sun6i-a31-r-intc"; ++ interrupt-controller; ++ #interrupt-cells = <2>; ++ reg = <0x01f00c00 0x400>; ++ interrupts = ; ++ }; ++ + r_ccu: clock@1f01400 { + compatible = "allwinner,sun50i-a64-r-ccu"; + reg = <0x01f01400 0x100>; +-- +cgit v1.1 +From bf397214530ee5c873dac7b12126b250afd3831f Mon Sep 17 00:00:00 2001 +From: Jagan Teki +Date: Mon, 14 Aug 2017 16:06:53 +0530 +Subject: arm64: allwinner: a64: Add initial NanoPi A64 support + +NanoPi A64 is a new board of high performance with low cost +designed by FriendlyElec., using the Allwinner A64 SOC. + +Nanopi A64 features +- Allwinner A64, 64-bit Quad-core Cortex-A53@648MHz to 1.152GHz, DVFS +- 1GB DDR3 RAM +- MicroSD +- Gigabit Ethernet (RTL8211E) +- Wi-Fi 802.11b/g/n +- IR receiver +- Audio In/Out +- Video In/Out +- Serial Debug Port +- microUSB 5V 2A DC power-supply + +Signed-off-by: Jagan Teki +Signed-off-by: Chen-Yu Tsai +--- + arch/arm64/boot/dts/allwinner/Makefile | 1 + + .../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | 207 +++++++++++++++++++++ + 2 files changed, 208 insertions(+) + create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts + +diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile +index 108f12c..c997b5c 100644 +--- a/arch/arm64/boot/dts/allwinner/Makefile ++++ b/arch/arm64/boot/dts/allwinner/Makefile +@@ -1,4 +1,5 @@ + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb ++dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts +new file mode 100644 +index 0000000..2beef9e +--- /dev/null ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts +@@ -0,0 +1,207 @@ ++/* ++ * Copyright (C) 2017 Jagan Teki ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/dts-v1/; ++ ++#include "sun50i-a64.dtsi" ++ ++#include ++ ++/ { ++ model = "FriendlyARM NanoPi A64"; ++ compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; ++ ++ aliases { ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++}; ++ ++&ehci0 { ++ status = "okay"; ++}; ++ ++&ehci1 { ++ status = "okay"; ++}; ++ ++/* i2c1 connected with gpio headers like pine64, bananapi */ ++&i2c1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c1_pins>; ++ status = "disabled"; ++}; ++ ++&i2c1_pins { ++ bias-pull-up; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins>; ++ vmmc-supply = <®_dcdc1>; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; ++ cd-inverted; ++ disable-wp; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ ++&ohci0 { ++ status = "okay"; ++}; ++ ++&ohci1 { ++ status = "okay"; ++}; ++ ++&r_rsb { ++ status = "okay"; ++ ++ axp803: pmic@3a3 { ++ compatible = "x-powers,axp803"; ++ reg = <0x3a3>; ++ interrupt-parent = <&r_intc>; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; ++ }; ++}; ++ ++#include "axp803.dtsi" ++ ++®_aldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pl"; ++}; ++ ++®_aldo3 { ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "vcc-pll-avcc"; ++}; ++ ++®_dcdc1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "vcc-3v"; ++}; ++ ++®_dcdc2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1040000>; ++ regulator-max-microvolt = <1300000>; ++ regulator-name = "vdd-cpux"; ++}; ++ ++/* DCDC3 is polyphased with DCDC2 */ ++ ++®_dcdc5 { ++ regulator-always-on; ++ regulator-min-microvolt = <1500000>; ++ regulator-max-microvolt = <1500000>; ++ regulator-name = "vcc-dram"; ++}; ++ ++®_dcdc6 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-sys"; ++}; ++ ++®_dldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-hdmi-dsi"; ++}; ++ ++®_dldo4 { ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "vcc-pg-wifi-io"; ++}; ++ ++®_eldo1 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "cpvdd"; ++}; ++ ++®_fldo1 { ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-name = "vcc-1v2-hsic"; ++}; ++ ++/* ++ * The A64 chip cannot work without this regulator off, although ++ * it seems to be only driving the AR100 core. ++ * Maybe we don't still know well about CPUs domain. ++ */ ++®_fldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-cpus"; ++}; ++ ++®_rtc_ldo { ++ regulator-name = "vcc-rtc"; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_pins_a>; ++ status = "okay"; ++}; ++ ++&usbphy { ++ status = "okay"; ++}; +-- +cgit v1.1 +From 4969efb28b4301b09aba621f30cf81c582c018a8 Mon Sep 17 00:00:00 2001 +From: Jagan Teki +Date: Mon, 14 Aug 2017 16:16:04 +0530 +Subject: arm64: allwinner: a64: Add A64-OLinuXino initial support + +OLimex A64-OLinuXino is an open-source hardware board +using the Allwinner A64 SOC. + +OLimex A64-OLinuXino has +- A64 Quad-core Cortex-A53 64bit +- 1GB or 2GB RAM DDR3L @ 672Mhz +- microSD slot and 4/8/16GB eMMC +- Debug TTL UART +- HDMI +- LCD +- IR receiver +- 5V DC power supply + +Signed-off-by: Jagan Teki +Signed-off-by: Chen-Yu Tsai +--- + arch/arm64/boot/dts/allwinner/Makefile | 1 + + .../boot/dts/allwinner/sun50i-a64-olinuxino.dts | 199 +++++++++++++++++++++ + 2 files changed, 200 insertions(+) + create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts + +diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile +index c997b5c..19c3fbd 100644 +--- a/arch/arm64/boot/dts/allwinner/Makefile ++++ b/arch/arm64/boot/dts/allwinner/Makefile +@@ -1,5 +1,6 @@ + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb ++dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +new file mode 100644 +index 0000000..338e7861 +--- /dev/null ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +@@ -0,0 +1,199 @@ ++/* ++ * Copyright (C) 2017 Jagan Teki ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/dts-v1/; ++ ++#include "sun50i-a64.dtsi" ++ ++#include ++ ++/ { ++ model = "Olimex A64-Olinuxino"; ++ compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; ++ ++ aliases { ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins>; ++ vmmc-supply = <®_dcdc1>; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; ++ cd-inverted; ++ disable-wp; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ ++&r_rsb { ++ status = "okay"; ++ ++ axp803: pmic@3a3 { ++ compatible = "x-powers,axp803"; ++ reg = <0x3a3>; ++ interrupt-parent = <&r_intc>; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; ++ }; ++}; ++ ++#include "axp803.dtsi" ++ ++®_aldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ regulator-name = "vcc-pe"; ++}; ++ ++®_aldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pl"; ++}; ++ ++®_aldo3 { ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "vcc-pll-avcc"; ++}; ++ ++®_dcdc1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3"; ++}; ++ ++®_dcdc2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1040000>; ++ regulator-max-microvolt = <1300000>; ++ regulator-name = "vdd-cpux"; ++}; ++ ++/* DCDC3 is polyphased with DCDC2 */ ++ ++®_dcdc5 { ++ regulator-always-on; ++ regulator-min-microvolt = <1500000>; ++ regulator-max-microvolt = <1500000>; ++ regulator-name = "vcc-ddr3"; ++}; ++ ++®_dcdc6 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-sys"; ++}; ++ ++®_dldo1 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-hdmi"; ++}; ++ ++®_dldo2 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-mipi"; ++}; ++ ++®_dldo3 { ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ regulator-name = "vcc-avdd-csi"; ++}; ++ ++®_dldo4 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-io"; ++}; ++ ++®_eldo1 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "cpvdd"; ++}; ++ ++®_eldo2 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-dvdd-csi"; ++}; ++ ++®_fldo1 { ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-name = "vcc-1v2-hsic"; ++}; ++ ++/* ++ * The A64 chip cannot work without this regulator off, although ++ * it seems to be only driving the AR100 core. ++ * Maybe we don't still know well about CPUs domain. ++ */ ++®_fldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-cpus"; ++}; ++ ++®_rtc_ldo { ++ regulator-name = "vcc-rtc"; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_pins_a>; ++ status = "okay"; ++}; +-- +cgit v1.1 diff --git a/kernel.spec b/kernel.spec index 803bc8cad..bc1ade42e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -655,6 +655,8 @@ Patch335: arm64-cavium-fixes.patch Patch336: arm-exynos-fix-usb3.patch +Patch337: arm64-aw64-devices.patch + # 400 - IBM (ppc/s390x) patches # 500 - Temp fixes/CVEs etc @@ -2263,6 +2265,7 @@ fi %changelog * Sun Oct 15 2017 Peter Robinson - Fix USB-3 Superspeed negotiation on exynos5 hardware (rhbz 1487006) +- Some AllWinner A64 fixes and improvements * Thu Oct 12 2017 Hans de Goede - Fix vboxvideo causing gnome 3.26+ to not work under VirtualBox From 93b5dde9e477e8c59b5e44c8a7a73f0e8d594953 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 16 Oct 2017 07:27:23 -0500 Subject: [PATCH 047/289] Linux v4.13.7 --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index bc1ade42e..2692300a4 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 6 +%define stable_update 7 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -2263,6 +2263,9 @@ fi # # %changelog +* Mon Oct 16 2017 Justin M. Forbes - 4.13.7-300 +- Linux v4.13.7 + * Sun Oct 15 2017 Peter Robinson - Fix USB-3 Superspeed negotiation on exynos5 hardware (rhbz 1487006) - Some AllWinner A64 fixes and improvements diff --git a/sources b/sources index b44855500..81a623c86 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.6.xz) = 40e111f3969b622f982bfb75f8c35aa59d9989a627a4511d8e0090b0c7bbcafcc90567434f5166ef2d17831f0beddb52762107e523414523e1877f67f66ca3f7 +SHA512 (patch-4.13.7.xz) = 4d96c655ca4c720b872e1a88ba9989a419880cb5fec2a4a9190077588066f205c5dce2591a76f26375f6f50001334ceb7631d489d3b24ca443d10e1e6879ed54 From cd7dbc3dff16bdf6833ab077a1ee5a842bcd3da7 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 16 Oct 2017 08:21:22 -0500 Subject: [PATCH 048/289] note CVE-2017-5123 was fixed with 4.13.7 --- kernel.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel.spec b/kernel.spec index 2692300a4..3840ab3ca 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2265,6 +2265,7 @@ fi %changelog * Mon Oct 16 2017 Justin M. Forbes - 4.13.7-300 - Linux v4.13.7 +- Fixes CVE-2017-5123 (rhbz 1500094 1501762) * Sun Oct 15 2017 Peter Robinson - Fix USB-3 Superspeed negotiation on exynos5 hardware (rhbz 1487006) From 0e81659c35d8280c5cce9b92aad73a1958e699ad Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 16 Oct 2017 10:42:20 -0500 Subject: [PATCH 049/289] Fix CVE-2017-15265 (rhbz 1501878 1501880) --- ...ix-use-after-free-at-creating-a-port.patch | 140 ++++++++++++++++++ kernel.spec | 4 + 2 files changed, 144 insertions(+) create mode 100644 0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch diff --git a/0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch b/0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch new file mode 100644 index 000000000..d04add8aa --- /dev/null +++ b/0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch @@ -0,0 +1,140 @@ +From 71105998845fb012937332fe2e806d443c09e026 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Mon, 9 Oct 2017 11:09:20 +0200 +Subject: [PATCH] ALSA: seq: Fix use-after-free at creating a port + +There is a potential race window opened at creating and deleting a +port via ioctl, as spotted by fuzzing. snd_seq_create_port() creates +a port object and returns its pointer, but it doesn't take the +refcount, thus it can be deleted immediately by another thread. +Meanwhile, snd_seq_ioctl_create_port() still calls the function +snd_seq_system_client_ev_port_start() with the created port object +that is being deleted, and this triggers use-after-free like: + + BUG: KASAN: use-after-free in snd_seq_ioctl_create_port+0x504/0x630 [snd_seq] at addr ffff8801f2241cb1 + ============================================================================= + BUG kmalloc-512 (Tainted: G B ): kasan: bad access detected + ----------------------------------------------------------------------------- + INFO: Allocated in snd_seq_create_port+0x94/0x9b0 [snd_seq] age=1 cpu=3 pid=4511 + ___slab_alloc+0x425/0x460 + __slab_alloc+0x20/0x40 + kmem_cache_alloc_trace+0x150/0x190 + snd_seq_create_port+0x94/0x9b0 [snd_seq] + snd_seq_ioctl_create_port+0xd1/0x630 [snd_seq] + snd_seq_do_ioctl+0x11c/0x190 [snd_seq] + snd_seq_ioctl+0x40/0x80 [snd_seq] + do_vfs_ioctl+0x54b/0xda0 + SyS_ioctl+0x79/0x90 + entry_SYSCALL_64_fastpath+0x16/0x75 + INFO: Freed in port_delete+0x136/0x1a0 [snd_seq] age=1 cpu=2 pid=4717 + __slab_free+0x204/0x310 + kfree+0x15f/0x180 + port_delete+0x136/0x1a0 [snd_seq] + snd_seq_delete_port+0x235/0x350 [snd_seq] + snd_seq_ioctl_delete_port+0xc8/0x180 [snd_seq] + snd_seq_do_ioctl+0x11c/0x190 [snd_seq] + snd_seq_ioctl+0x40/0x80 [snd_seq] + do_vfs_ioctl+0x54b/0xda0 + SyS_ioctl+0x79/0x90 + entry_SYSCALL_64_fastpath+0x16/0x75 + Call Trace: + [] dump_stack+0x63/0x82 + [] print_trailer+0xfb/0x160 + [] object_err+0x34/0x40 + [] kasan_report.part.2+0x223/0x520 + [] ? snd_seq_ioctl_create_port+0x504/0x630 [snd_seq] + [] __asan_report_load1_noabort+0x2e/0x30 + [] snd_seq_ioctl_create_port+0x504/0x630 [snd_seq] + [] ? snd_seq_ioctl_delete_port+0x180/0x180 [snd_seq] + [] ? taskstats_exit+0xbc0/0xbc0 + [] snd_seq_do_ioctl+0x11c/0x190 [snd_seq] + [] snd_seq_ioctl+0x40/0x80 [snd_seq] + [] ? acct_account_cputime+0x63/0x80 + [] do_vfs_ioctl+0x54b/0xda0 + ..... + +We may fix this in a few different ways, and in this patch, it's fixed +simply by taking the refcount properly at snd_seq_create_port() and +letting the caller unref the object after use. Also, there is another +potential use-after-free by sprintf() call in snd_seq_create_port(), +and this is moved inside the lock. + +This fix covers CVE-2017-15265. + +Reported-and-tested-by: Michael23 Yu +Suggested-by: Linus Torvalds +Cc: +Signed-off-by: Takashi Iwai +--- + sound/core/seq/seq_clientmgr.c | 6 +++++- + sound/core/seq/seq_ports.c | 7 +++++-- + 2 files changed, 10 insertions(+), 3 deletions(-) + +diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c +index ea2d0ae85bd3..6c9cba2166d9 100644 +--- a/sound/core/seq/seq_clientmgr.c ++++ b/sound/core/seq/seq_clientmgr.c +@@ -1259,6 +1259,7 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg) + struct snd_seq_port_info *info = arg; + struct snd_seq_client_port *port; + struct snd_seq_port_callback *callback; ++ int port_idx; + + /* it is not allowed to create the port for an another client */ + if (info->addr.client != client->number) +@@ -1269,7 +1270,9 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg) + return -ENOMEM; + + if (client->type == USER_CLIENT && info->kernel) { +- snd_seq_delete_port(client, port->addr.port); ++ port_idx = port->addr.port; ++ snd_seq_port_unlock(port); ++ snd_seq_delete_port(client, port_idx); + return -EINVAL; + } + if (client->type == KERNEL_CLIENT) { +@@ -1290,6 +1293,7 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg) + + snd_seq_set_port_info(port, info); + snd_seq_system_client_ev_port_start(port->addr.client, port->addr.port); ++ snd_seq_port_unlock(port); + + return 0; + } +diff --git a/sound/core/seq/seq_ports.c b/sound/core/seq/seq_ports.c +index 0a7020c82bfc..d21ece9f8d73 100644 +--- a/sound/core/seq/seq_ports.c ++++ b/sound/core/seq/seq_ports.c +@@ -122,7 +122,9 @@ static void port_subs_info_init(struct snd_seq_port_subs_info *grp) + } + + +-/* create a port, port number is returned (-1 on failure) */ ++/* create a port, port number is returned (-1 on failure); ++ * the caller needs to unref the port via snd_seq_port_unlock() appropriately ++ */ + struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, + int port) + { +@@ -151,6 +153,7 @@ struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, + snd_use_lock_init(&new_port->use_lock); + port_subs_info_init(&new_port->c_src); + port_subs_info_init(&new_port->c_dest); ++ snd_use_lock_use(&new_port->use_lock); + + num = port >= 0 ? port : 0; + mutex_lock(&client->ports_mutex); +@@ -165,9 +168,9 @@ struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, + list_add_tail(&new_port->list, &p->list); + client->num_ports++; + new_port->addr.port = num; /* store the port number in the port */ ++ sprintf(new_port->name, "port-%d", num); + write_unlock_irqrestore(&client->ports_lock, flags); + mutex_unlock(&client->ports_mutex); +- sprintf(new_port->name, "port-%d", num); + + return new_port; + } +-- +2.13.5 + diff --git a/kernel.spec b/kernel.spec index 3840ab3ca..feac5e42f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -709,6 +709,9 @@ Patch631: drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch # fix gnome 3.26+ not working under VirtualBox, submitted upstream, Cc: Stable Patch632: 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch +# CVE-2017-15265 rhbz 1501878 1501880 +Patch633: 0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch + # END OF PATCH DEFINITIONS %endif @@ -2266,6 +2269,7 @@ fi * Mon Oct 16 2017 Justin M. Forbes - 4.13.7-300 - Linux v4.13.7 - Fixes CVE-2017-5123 (rhbz 1500094 1501762) +- Fix CVE-2017-15265 (rhbz 1501878 1501880) * Sun Oct 15 2017 Peter Robinson - Fix USB-3 Superspeed negotiation on exynos5 hardware (rhbz 1487006) From b041ccde79652fc1f1eb760cbbd093eb7885d2b2 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 18 Oct 2017 08:02:10 -0700 Subject: [PATCH 050/289] Linux v4.13.8 --- ...ix-use-after-free-at-creating-a-port.patch | 140 ------------------ kernel.spec | 11 +- sources | 2 +- ...erent-MSI-target-address-for-Tegra20.patch | 47 ------ 4 files changed, 5 insertions(+), 195 deletions(-) delete mode 100644 0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch delete mode 100644 tegra-Use-different-MSI-target-address-for-Tegra20.patch diff --git a/0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch b/0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch deleted file mode 100644 index d04add8aa..000000000 --- a/0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 71105998845fb012937332fe2e806d443c09e026 Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Mon, 9 Oct 2017 11:09:20 +0200 -Subject: [PATCH] ALSA: seq: Fix use-after-free at creating a port - -There is a potential race window opened at creating and deleting a -port via ioctl, as spotted by fuzzing. snd_seq_create_port() creates -a port object and returns its pointer, but it doesn't take the -refcount, thus it can be deleted immediately by another thread. -Meanwhile, snd_seq_ioctl_create_port() still calls the function -snd_seq_system_client_ev_port_start() with the created port object -that is being deleted, and this triggers use-after-free like: - - BUG: KASAN: use-after-free in snd_seq_ioctl_create_port+0x504/0x630 [snd_seq] at addr ffff8801f2241cb1 - ============================================================================= - BUG kmalloc-512 (Tainted: G B ): kasan: bad access detected - ----------------------------------------------------------------------------- - INFO: Allocated in snd_seq_create_port+0x94/0x9b0 [snd_seq] age=1 cpu=3 pid=4511 - ___slab_alloc+0x425/0x460 - __slab_alloc+0x20/0x40 - kmem_cache_alloc_trace+0x150/0x190 - snd_seq_create_port+0x94/0x9b0 [snd_seq] - snd_seq_ioctl_create_port+0xd1/0x630 [snd_seq] - snd_seq_do_ioctl+0x11c/0x190 [snd_seq] - snd_seq_ioctl+0x40/0x80 [snd_seq] - do_vfs_ioctl+0x54b/0xda0 - SyS_ioctl+0x79/0x90 - entry_SYSCALL_64_fastpath+0x16/0x75 - INFO: Freed in port_delete+0x136/0x1a0 [snd_seq] age=1 cpu=2 pid=4717 - __slab_free+0x204/0x310 - kfree+0x15f/0x180 - port_delete+0x136/0x1a0 [snd_seq] - snd_seq_delete_port+0x235/0x350 [snd_seq] - snd_seq_ioctl_delete_port+0xc8/0x180 [snd_seq] - snd_seq_do_ioctl+0x11c/0x190 [snd_seq] - snd_seq_ioctl+0x40/0x80 [snd_seq] - do_vfs_ioctl+0x54b/0xda0 - SyS_ioctl+0x79/0x90 - entry_SYSCALL_64_fastpath+0x16/0x75 - Call Trace: - [] dump_stack+0x63/0x82 - [] print_trailer+0xfb/0x160 - [] object_err+0x34/0x40 - [] kasan_report.part.2+0x223/0x520 - [] ? snd_seq_ioctl_create_port+0x504/0x630 [snd_seq] - [] __asan_report_load1_noabort+0x2e/0x30 - [] snd_seq_ioctl_create_port+0x504/0x630 [snd_seq] - [] ? snd_seq_ioctl_delete_port+0x180/0x180 [snd_seq] - [] ? taskstats_exit+0xbc0/0xbc0 - [] snd_seq_do_ioctl+0x11c/0x190 [snd_seq] - [] snd_seq_ioctl+0x40/0x80 [snd_seq] - [] ? acct_account_cputime+0x63/0x80 - [] do_vfs_ioctl+0x54b/0xda0 - ..... - -We may fix this in a few different ways, and in this patch, it's fixed -simply by taking the refcount properly at snd_seq_create_port() and -letting the caller unref the object after use. Also, there is another -potential use-after-free by sprintf() call in snd_seq_create_port(), -and this is moved inside the lock. - -This fix covers CVE-2017-15265. - -Reported-and-tested-by: Michael23 Yu -Suggested-by: Linus Torvalds -Cc: -Signed-off-by: Takashi Iwai ---- - sound/core/seq/seq_clientmgr.c | 6 +++++- - sound/core/seq/seq_ports.c | 7 +++++-- - 2 files changed, 10 insertions(+), 3 deletions(-) - -diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c -index ea2d0ae85bd3..6c9cba2166d9 100644 ---- a/sound/core/seq/seq_clientmgr.c -+++ b/sound/core/seq/seq_clientmgr.c -@@ -1259,6 +1259,7 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg) - struct snd_seq_port_info *info = arg; - struct snd_seq_client_port *port; - struct snd_seq_port_callback *callback; -+ int port_idx; - - /* it is not allowed to create the port for an another client */ - if (info->addr.client != client->number) -@@ -1269,7 +1270,9 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg) - return -ENOMEM; - - if (client->type == USER_CLIENT && info->kernel) { -- snd_seq_delete_port(client, port->addr.port); -+ port_idx = port->addr.port; -+ snd_seq_port_unlock(port); -+ snd_seq_delete_port(client, port_idx); - return -EINVAL; - } - if (client->type == KERNEL_CLIENT) { -@@ -1290,6 +1293,7 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg) - - snd_seq_set_port_info(port, info); - snd_seq_system_client_ev_port_start(port->addr.client, port->addr.port); -+ snd_seq_port_unlock(port); - - return 0; - } -diff --git a/sound/core/seq/seq_ports.c b/sound/core/seq/seq_ports.c -index 0a7020c82bfc..d21ece9f8d73 100644 ---- a/sound/core/seq/seq_ports.c -+++ b/sound/core/seq/seq_ports.c -@@ -122,7 +122,9 @@ static void port_subs_info_init(struct snd_seq_port_subs_info *grp) - } - - --/* create a port, port number is returned (-1 on failure) */ -+/* create a port, port number is returned (-1 on failure); -+ * the caller needs to unref the port via snd_seq_port_unlock() appropriately -+ */ - struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, - int port) - { -@@ -151,6 +153,7 @@ struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, - snd_use_lock_init(&new_port->use_lock); - port_subs_info_init(&new_port->c_src); - port_subs_info_init(&new_port->c_dest); -+ snd_use_lock_use(&new_port->use_lock); - - num = port >= 0 ? port : 0; - mutex_lock(&client->ports_mutex); -@@ -165,9 +168,9 @@ struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, - list_add_tail(&new_port->list, &p->list); - client->num_ports++; - new_port->addr.port = num; /* store the port number in the port */ -+ sprintf(new_port->name, "port-%d", num); - write_unlock_irqrestore(&client->ports_lock, flags); - mutex_unlock(&client->ports_mutex); -- sprintf(new_port->name, "port-%d", num); - - return new_port; - } --- -2.13.5 - diff --git a/kernel.spec b/kernel.spec index feac5e42f..75e886e3d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 7 +%define stable_update 8 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -596,9 +596,6 @@ Patch305: arm-imx6-hummingboard2.patch Patch306: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch -# https://patchwork.kernel.org/patch/9967397/ -Patch307: tegra-Use-different-MSI-target-address-for-Tegra20.patch - # https://patchwork.kernel.org/patch/9815555/ # https://patchwork.kernel.org/patch/9815651/ # https://patchwork.kernel.org/patch/9819885/ @@ -709,9 +706,6 @@ Patch631: drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch # fix gnome 3.26+ not working under VirtualBox, submitted upstream, Cc: Stable Patch632: 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch -# CVE-2017-15265 rhbz 1501878 1501880 -Patch633: 0001-ALSA-seq-Fix-use-after-free-at-creating-a-port.patch - # END OF PATCH DEFINITIONS %endif @@ -2266,6 +2260,9 @@ fi # # %changelog +* Wed Oct 18 2017 Laura Abbott - 4.13.8-300 +- Linux v4.13.8 + * Mon Oct 16 2017 Justin M. Forbes - 4.13.7-300 - Linux v4.13.7 - Fixes CVE-2017-5123 (rhbz 1500094 1501762) diff --git a/sources b/sources index 81a623c86..5b7a5c0aa 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.7.xz) = 4d96c655ca4c720b872e1a88ba9989a419880cb5fec2a4a9190077588066f205c5dce2591a76f26375f6f50001334ceb7631d489d3b24ca443d10e1e6879ed54 +SHA512 (patch-4.13.8.xz) = b70b1a081155fa9a7082ad2771aa0a43a9f6458aa5f7f312729aaa3a71db71d28bcd1d1cac6ffaee134797359f37ee86de70537c1190ca60c016a8779268e880 diff --git a/tegra-Use-different-MSI-target-address-for-Tegra20.patch b/tegra-Use-different-MSI-target-address-for-Tegra20.patch deleted file mode 100644 index 338693bcf..000000000 --- a/tegra-Use-different-MSI-target-address-for-Tegra20.patch +++ /dev/null @@ -1,47 +0,0 @@ -From patchwork Sat Sep 23 06:17:40 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: PCI: tegra: Use different MSI target address for Tegra20 -From: Thierry Reding -X-Patchwork-Id: 9967397 -Message-Id: <20170923061740.6012-1-treding@nvidia.com> -To: Bjorn Helgaas -Cc: Thierry Reding , - Jonathan Hunter , - linux-pci@vger.kernel.org, linux-tegra@vger.kernel.org -Date: Fri, 22 Sep 2017 23:17:40 -0700 - -The Tegra20 PCIe controller has a different address range for MSI, so -select a different target address. - -Fixes: d7bd554f27c9 ("PCI: tegra: Do not allocate MSI target memory") -Signed-off-by: Thierry Reding ---- - drivers/pci/host/pci-tegra.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c -index e8e1ddbaabc9..5b02ea59524b 100644 ---- a/drivers/pci/host/pci-tegra.c -+++ b/drivers/pci/host/pci-tegra.c -@@ -1563,8 +1563,18 @@ static int tegra_pcie_enable_msi(struct tegra_pcie *pcie) - * none of the Tegra SoCs that contain this PCI host bridge can - * address more than 16 GiB of system memory, the last 4 KiB of - * these 1012 GiB is a good candidate. -+ * -+ * Unfortunately, Tegra20 is slightly different in that the physical -+ * address for this MSI region is limited to the lower 32 bits of the -+ * address map, so the address that we pick is going to have to be -+ * located somewhere within the region addressable by the CPU and -+ * on-SoC controllers. To be on the safe side, we select an address -+ * from a region that is marked unused (0xf0010000 - 0xfffeffff). - */ -- msi->phys = 0xfcfffff000; -+ if (soc->msi_base_shift > 0) -+ msi->phys = 0xfcfffff000; -+ else -+ msi->phys = 0x00f0010000; - - afi_writel(pcie, msi->phys >> soc->msi_base_shift, AFI_MSI_FPCI_BAR_ST); - afi_writel(pcie, msi->phys, AFI_MSI_AXI_BAR_ST); From 1b984b493f904694273c353383ac1f329a820d06 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 18 Oct 2017 15:35:32 -0700 Subject: [PATCH 051/289] Note fix for CVE-2017-12190 --- kernel.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel.spec b/kernel.spec index 75e886e3d..85d6ae2c2 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2262,6 +2262,7 @@ fi %changelog * Wed Oct 18 2017 Laura Abbott - 4.13.8-300 - Linux v4.13.8 +- Fix CVE-2017-12190 (rhbz 1495089 1503580) * Mon Oct 16 2017 Justin M. Forbes - 4.13.7-300 - Linux v4.13.7 From d7799750bf66c2b5a8d137c5144d983236ff1ef0 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 19 Oct 2017 09:37:09 -0500 Subject: [PATCH 052/289] Update for QXL flicker issue --- qxl-fixes.patch | 267 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) diff --git a/qxl-fixes.patch b/qxl-fixes.patch index c8bd4b9fb..5572266a0 100644 --- a/qxl-fixes.patch +++ b/qxl-fixes.patch @@ -1,3 +1,90 @@ +From c463b4ad6b2ac5a40c959e6c636eafc7edb1a63b Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Wed, 6 Sep 2017 11:31:51 +0200 +Subject: qxl: fix primary surface handling + +The atomic conversion of the qxl driver didn't got the primary surface +handling completely right. It works in the common simple cases, but +fails for example when changing the display resolution using xrandr or +in multihead setups. + +The rules are simple: There is one primary surface. Before defining a +new one you have to destroy the old one. + +This patch makes qxl_primary_atomic_update() destroy the primary surface +before defining a new one. It fixes is_primary flag updates. It adds +is_primary checks so we don't try to update the primary surface in case +it already has the state we want it being in. + +Signed-off-by: Gerd Hoffmann +--- + drivers/gpu/drm/qxl/qxl_display.c | 34 +++++++++++++++++++--------------- + 1 file changed, 19 insertions(+), 15 deletions(-) + +diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c +index 03fe182..7babdd8f 100644 +--- a/drivers/gpu/drm/qxl/qxl_display.c ++++ b/drivers/gpu/drm/qxl/qxl_display.c +@@ -512,23 +512,25 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, + .y2 = qfb->base.height + }; + +- if (!old_state->fb) { +- qxl_io_log(qdev, +- "create primary fb: %dx%d,%d,%d\n", +- bo->surf.width, bo->surf.height, +- bo->surf.stride, bo->surf.format); ++ if (old_state->fb) { ++ qfb_old = to_qxl_framebuffer(old_state->fb); ++ bo_old = gem_to_qxl_bo(qfb_old->obj); ++ } else { ++ bo_old = NULL; ++ } + +- qxl_io_create_primary(qdev, 0, bo); +- bo->is_primary = true; ++ if (bo == bo_old) + return; + +- } else { +- qfb_old = to_qxl_framebuffer(old_state->fb); +- bo_old = gem_to_qxl_bo(qfb_old->obj); ++ if (bo_old && bo_old->is_primary) { ++ qxl_io_destroy_primary(qdev); + bo_old->is_primary = false; + } + +- bo->is_primary = true; ++ if (!bo->is_primary) { ++ qxl_io_create_primary(qdev, 0, bo); ++ bo->is_primary = true; ++ } + qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); + } + +@@ -537,13 +539,15 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane, + { + struct qxl_device *qdev = plane->dev->dev_private; + +- if (old_state->fb) +- { struct qxl_framebuffer *qfb = ++ if (old_state->fb) { ++ struct qxl_framebuffer *qfb = + to_qxl_framebuffer(old_state->fb); + struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); + +- qxl_io_destroy_primary(qdev); +- bo->is_primary = false; ++ if (bo->is_primary) { ++ qxl_io_destroy_primary(qdev); ++ bo->is_primary = false; ++ } + } + } + +-- +cgit v0.12 + From 05026e6e19b29104ddba4e8979e6c7af17944695 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 15 Sep 2017 12:46:15 +0200 @@ -37,3 +124,183 @@ index 7babdd8f..afc2272 100644 -- cgit v0.12 +From 7a39a01887acc66d9b318d5e5898cf00d323eb8f Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Wed, 18 Oct 2017 13:18:40 +0200 +Subject: qxl: alloc & use shadow for dumb buffers + +This patch changes the way the primary surface is used for dumb +framebuffers. Instead of configuring the bo itself as primary surface +a shadow bo is created and used instead. Framebuffers can share the +shadow bo in case they have the same format and resolution. + +On atomic plane updates we don't have to update the primary surface in +case we pageflip from one framebuffer to another framebuffer which +shares the same shadow. This in turn avoids the flicker caused by the +primary-destroy + primary-create cycle, which is very annonying when +running wayland on qxl. + +The qxl driver never actually writes to the shadow bo. It sends qxl +blit commands which update it though, and the spice server might +actually execute them (and thereby write to the shadow) in case the +local rendering is kicked for some reason. This happens for example in +case qemu is asked to write out a dump of the guest display (screendump +monitor command). + +Signed-off-by: Gerd Hoffmann +--- + drivers/gpu/drm/qxl/qxl_cmd.c | 6 ++++- + drivers/gpu/drm/qxl/qxl_display.c | 49 ++++++++++++++++++++++++++++++++++++--- + drivers/gpu/drm/qxl/qxl_drv.h | 2 ++ + drivers/gpu/drm/qxl/qxl_dumb.c | 1 + + 4 files changed, 54 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c +index 8ec53d5..c0fb52c 100644 +--- a/drivers/gpu/drm/qxl/qxl_cmd.c ++++ b/drivers/gpu/drm/qxl/qxl_cmd.c +@@ -387,7 +387,11 @@ void qxl_io_create_primary(struct qxl_device *qdev, + create->width = bo->surf.width; + create->height = bo->surf.height; + create->stride = bo->surf.stride; +- create->mem = qxl_bo_physical_address(qdev, bo, offset); ++ if (bo->shadow) { ++ create->mem = qxl_bo_physical_address(qdev, bo->shadow, offset); ++ } else { ++ create->mem = qxl_bo_physical_address(qdev, bo, offset); ++ } + + DRM_DEBUG_DRIVER("mem = %llx, from %p\n", create->mem, bo->kptr); + +diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c +index afbf50d..4756b3c 100644 +--- a/drivers/gpu/drm/qxl/qxl_display.c ++++ b/drivers/gpu/drm/qxl/qxl_display.c +@@ -305,7 +305,9 @@ static const struct drm_crtc_funcs qxl_crtc_funcs = { + void qxl_user_framebuffer_destroy(struct drm_framebuffer *fb) + { + struct qxl_framebuffer *qxl_fb = to_qxl_framebuffer(fb); ++ struct qxl_bo *bo = gem_to_qxl_bo(qxl_fb->obj); + ++ WARN_ON(bo->shadow); + drm_gem_object_unreference_unlocked(qxl_fb->obj); + drm_framebuffer_cleanup(fb); + kfree(qxl_fb); +@@ -508,6 +510,7 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, + .x2 = qfb->base.width, + .y2 = qfb->base.height + }; ++ bool same_shadow = false; + + if (old_state->fb) { + qfb_old = to_qxl_framebuffer(old_state->fb); +@@ -519,15 +522,23 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, + if (bo == bo_old) + return; + ++ if (bo_old && bo_old->shadow && bo->shadow && ++ bo_old->shadow == bo->shadow) { ++ same_shadow = true; ++ } ++ + if (bo_old && bo_old->is_primary) { +- qxl_io_destroy_primary(qdev); ++ if (!same_shadow) ++ qxl_io_destroy_primary(qdev); + bo_old->is_primary = false; + } + + if (!bo->is_primary) { +- qxl_io_create_primary(qdev, 0, bo); ++ if (!same_shadow) ++ qxl_io_create_primary(qdev, 0, bo); + bo->is_primary = true; + } ++ + qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); + } + +@@ -679,8 +690,9 @@ static void qxl_cursor_atomic_disable(struct drm_plane *plane, + static int qxl_plane_prepare_fb(struct drm_plane *plane, + struct drm_plane_state *new_state) + { ++ struct qxl_device *qdev = plane->dev->dev_private; + struct drm_gem_object *obj; +- struct qxl_bo *user_bo; ++ struct qxl_bo *user_bo, *old_bo = NULL; + int ret; + + if (!new_state->fb) +@@ -689,6 +701,32 @@ static int qxl_plane_prepare_fb(struct drm_plane *plane, + obj = to_qxl_framebuffer(new_state->fb)->obj; + user_bo = gem_to_qxl_bo(obj); + ++ if (plane->type == DRM_PLANE_TYPE_PRIMARY && ++ user_bo->is_dumb && !user_bo->shadow) { ++ if (plane->state->fb) { ++ obj = to_qxl_framebuffer(plane->state->fb)->obj; ++ old_bo = gem_to_qxl_bo(obj); ++ } ++ if (old_bo && old_bo->shadow && ++ user_bo->gem_base.size == old_bo->gem_base.size && ++ plane->state->crtc == new_state->crtc && ++ plane->state->crtc_w == new_state->crtc_w && ++ plane->state->crtc_h == new_state->crtc_h && ++ plane->state->src_x == new_state->src_x && ++ plane->state->src_y == new_state->src_y && ++ plane->state->src_w == new_state->src_w && ++ plane->state->src_h == new_state->src_h && ++ plane->state->rotation == new_state->rotation && ++ plane->state->zpos == new_state->zpos) { ++ drm_gem_object_get(&old_bo->shadow->gem_base); ++ user_bo->shadow = old_bo->shadow; ++ } else { ++ qxl_bo_create(qdev, user_bo->gem_base.size, ++ true, true, QXL_GEM_DOMAIN_VRAM, NULL, ++ &user_bo->shadow); ++ } ++ } ++ + ret = qxl_bo_pin(user_bo, QXL_GEM_DOMAIN_CPU, NULL); + if (ret) + return ret; +@@ -713,6 +751,11 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane, + obj = to_qxl_framebuffer(old_state->fb)->obj; + user_bo = gem_to_qxl_bo(obj); + qxl_bo_unpin(user_bo); ++ ++ if (user_bo->shadow && !user_bo->is_primary) { ++ drm_gem_object_put_unlocked(&user_bo->shadow->gem_base); ++ user_bo->shadow = NULL; ++ } + } + + static const uint32_t qxl_cursor_plane_formats[] = { +diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h +index d707b35..08752c0 100644 +--- a/drivers/gpu/drm/qxl/qxl_drv.h ++++ b/drivers/gpu/drm/qxl/qxl_drv.h +@@ -89,6 +89,8 @@ struct qxl_bo { + /* Constant after initialization */ + struct drm_gem_object gem_base; + bool is_primary; /* is this now a primary surface */ ++ bool is_dumb; ++ struct qxl_bo *shadow; + bool hw_surf_alloc; + struct qxl_surface surf; + uint32_t surface_id; +diff --git a/drivers/gpu/drm/qxl/qxl_dumb.c b/drivers/gpu/drm/qxl/qxl_dumb.c +index 5e65d5d..11085ab 100644 +--- a/drivers/gpu/drm/qxl/qxl_dumb.c ++++ b/drivers/gpu/drm/qxl/qxl_dumb.c +@@ -63,6 +63,7 @@ int qxl_mode_dumb_create(struct drm_file *file_priv, + &handle); + if (r) + return r; ++ qobj->is_dumb = true; + args->pitch = pitch; + args->handle = handle; + return 0; +-- +cgit v0.12 + From 1fb65ffba4c73ec055e5ae6fce88ec7c2a2bbefb Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 19 Oct 2017 10:34:07 -0500 Subject: [PATCH 053/289] fix qxl patch for git am --- qxl-fixes.patch | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/qxl-fixes.patch b/qxl-fixes.patch index 5572266a0..558204ac5 100644 --- a/qxl-fixes.patch +++ b/qxl-fixes.patch @@ -156,10 +156,10 @@ Signed-off-by: Gerd Hoffmann 4 files changed, 54 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c -index 8ec53d5..c0fb52c 100644 +index 74fc936..3eb9208 100644 --- a/drivers/gpu/drm/qxl/qxl_cmd.c +++ b/drivers/gpu/drm/qxl/qxl_cmd.c -@@ -387,7 +387,11 @@ void qxl_io_create_primary(struct qxl_device *qdev, +@@ -388,7 +388,11 @@ void qxl_io_create_primary(struct qxl_device *qdev, create->width = bo->surf.width; create->height = bo->surf.height; create->stride = bo->surf.stride; @@ -169,11 +169,11 @@ index 8ec53d5..c0fb52c 100644 + } else { + create->mem = qxl_bo_physical_address(qdev, bo, offset); + } - - DRM_DEBUG_DRIVER("mem = %llx, from %p\n", create->mem, bo->kptr); - + + QXL_INFO(qdev, "%s: mem = %llx, from %p\n", __func__, create->mem, + bo->kptr); diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index afbf50d..4756b3c 100644 +index afc2272..da6648e 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -305,7 +305,9 @@ static const struct drm_crtc_funcs qxl_crtc_funcs = { @@ -181,23 +181,23 @@ index afbf50d..4756b3c 100644 { struct qxl_framebuffer *qxl_fb = to_qxl_framebuffer(fb); + struct qxl_bo *bo = gem_to_qxl_bo(qxl_fb->obj); - + + WARN_ON(bo->shadow); drm_gem_object_unreference_unlocked(qxl_fb->obj); drm_framebuffer_cleanup(fb); kfree(qxl_fb); -@@ -508,6 +510,7 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, +@@ -511,6 +513,7 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, .x2 = qfb->base.width, .y2 = qfb->base.height }; + bool same_shadow = false; - + if (old_state->fb) { qfb_old = to_qxl_framebuffer(old_state->fb); -@@ -519,15 +522,23 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, +@@ -522,15 +525,23 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, if (bo == bo_old) return; - + + if (bo_old && bo_old->shadow && bo->shadow && + bo_old->shadow == bo->shadow) { + same_shadow = true; @@ -209,7 +209,7 @@ index afbf50d..4756b3c 100644 + qxl_io_destroy_primary(qdev); bo_old->is_primary = false; } - + if (!bo->is_primary) { - qxl_io_create_primary(qdev, 0, bo); + if (!same_shadow) @@ -219,22 +219,22 @@ index afbf50d..4756b3c 100644 + qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); } - -@@ -679,8 +690,9 @@ static void qxl_cursor_atomic_disable(struct drm_plane *plane, - static int qxl_plane_prepare_fb(struct drm_plane *plane, - struct drm_plane_state *new_state) + +@@ -682,8 +693,9 @@ void qxl_cursor_atomic_disable(struct drm_plane *plane, + int qxl_plane_prepare_fb(struct drm_plane *plane, + struct drm_plane_state *new_state) { + struct qxl_device *qdev = plane->dev->dev_private; struct drm_gem_object *obj; - struct qxl_bo *user_bo; + struct qxl_bo *user_bo, *old_bo = NULL; int ret; - + if (!new_state->fb) -@@ -689,6 +701,32 @@ static int qxl_plane_prepare_fb(struct drm_plane *plane, +@@ -692,6 +704,32 @@ int qxl_plane_prepare_fb(struct drm_plane *plane, obj = to_qxl_framebuffer(new_state->fb)->obj; user_bo = gem_to_qxl_bo(obj); - + + if (plane->type == DRM_PLANE_TYPE_PRIMARY && + user_bo->is_dumb && !user_bo->shadow) { + if (plane->state->fb) { @@ -264,7 +264,7 @@ index afbf50d..4756b3c 100644 ret = qxl_bo_pin(user_bo, QXL_GEM_DOMAIN_CPU, NULL); if (ret) return ret; -@@ -713,6 +751,11 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane, +@@ -716,6 +754,11 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane, obj = to_qxl_framebuffer(old_state->fb)->obj; user_bo = gem_to_qxl_bo(obj); qxl_bo_unpin(user_bo); @@ -274,13 +274,13 @@ index afbf50d..4756b3c 100644 + user_bo->shadow = NULL; + } } - + static const uint32_t qxl_cursor_plane_formats[] = { diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h -index d707b35..08752c0 100644 +index 3591d23..b5e9dc6 100644 --- a/drivers/gpu/drm/qxl/qxl_drv.h +++ b/drivers/gpu/drm/qxl/qxl_drv.h -@@ -89,6 +89,8 @@ struct qxl_bo { +@@ -112,6 +112,8 @@ struct qxl_bo { /* Constant after initialization */ struct drm_gem_object gem_base; bool is_primary; /* is this now a primary surface */ @@ -302,5 +302,5 @@ index 5e65d5d..11085ab 100644 args->handle = handle; return 0; -- -cgit v0.12 +2.13.5 From 289b4a0a16861e03a8d269aeb4e81401ad3f7e4f Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 23 Oct 2017 06:10:11 -0700 Subject: [PATCH 054/289] Linux v4.13.9 --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 85d6ae2c2..a0711d2b8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 8 +%define stable_update 9 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -2260,6 +2260,9 @@ fi # # %changelog +* Mon Oct 23 2017 Laura Abbott - 4.13.9-300 +- Linux v4.13.9 + * Wed Oct 18 2017 Laura Abbott - 4.13.8-300 - Linux v4.13.8 - Fix CVE-2017-12190 (rhbz 1495089 1503580) diff --git a/sources b/sources index 5b7a5c0aa..8fbe1f0e9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.8.xz) = b70b1a081155fa9a7082ad2771aa0a43a9f6458aa5f7f312729aaa3a71db71d28bcd1d1cac6ffaee134797359f37ee86de70537c1190ca60c016a8779268e880 +SHA512 (patch-4.13.9.xz) = 3046ee2ef416e0f75908063192eae076d9018cba3f87b9eb1734df6a0f0d12fe79b6bda5d7713c3d663c8f418d3db1bdb64fb88f76660345911dcb2d857f41f7 From b7699ce9fae05572f25a933b6454670b2ec57dad Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Fri, 27 Oct 2017 09:06:12 -0400 Subject: [PATCH 055/289] Linux v4.13.10 --- ...add_key-update-an-uninstantiated-key.patch | 130 --------- ...tween-updating-and-finding-negative-.patch | 258 ------------------ kernel.spec | 9 +- sources | 2 +- 4 files changed, 5 insertions(+), 394 deletions(-) delete mode 100644 KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch delete mode 100644 KEYS-fix-race-between-updating-and-finding-negative-.patch diff --git a/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch b/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch deleted file mode 100644 index af7478ee5..000000000 --- a/KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 7289bfaee2a42bdb56eecab0625907c045d080ba Mon Sep 17 00:00:00 2001 -From: Eric Biggers -Date: Wed, 27 Sep 2017 12:50:41 -0700 -Subject: [PATCH] KEYS: don't let add_key() update an uninstantiated key - -Currently, add_key() will, when passed a key that already exists, call -the key's ->update() method. But this is heavily broken in the case -where the key is uninstantiated because it doesn't call -__key_instantiate_and_link(). Consequently, it doesn't do most of the -things that are supposed to happen when the key is instantiated, such as -setting KEY_FLAG_INSTANTIATED, clearing KEY_FLAG_USER_CONSTRUCT and -awakening tasks waiting on it, and incrementing key->user->nikeys. - -It also never takes key_construction_mutex, which means that -->instantiate() can run concurrently with ->update() on the same key. -In the case of the "user" and "logon" key types this causes a memory -leak, at best. Maybe even worse, the ->update() methods of the -"encrypted" and "trusted" key types actually just dereference a NULL -pointer when passed an uninstantiated key. - -Therefore, change find_key_to_update() to return NULL if the found key -is uninstantiated, so that add_key() replaces the key rather than -instantiating it. This seems to be better than fixing __key_update() to -call __key_instantiate_and_link(), since given all the bugs noted above -as well as that the existing behavior was undocumented and -keyctl_instantiate() is supposed to be used instead, I doubt anyone was -relying on the existing behavior. - -This patch only affects *uninstantiated* keys. For now we still allow a -negatively instantiated key to be updated (thereby positively -instantiating it), although that's broken too (the next patch fixes it) -and I'm not sure that anyone actually uses that functionality either. - -Here is a simple reproducer for the bug using the "encrypted" key type -(requires CONFIG_ENCRYPTED_KEYS=y), though as noted above the bug -pertained to more than just the "encrypted" key type: - - #include - #include - #include - - int main(void) - { - int ringid = keyctl_join_session_keyring(NULL); - - if (fork()) { - for (;;) { - const char payload[] = "update user:foo 32"; - - usleep(rand() % 10000); - add_key("encrypted", "desc", payload, sizeof(payload), ringid); - keyctl_clear(ringid); - } - } else { - for (;;) - request_key("encrypted", "desc", "callout_info", ringid); - } - } - -It causes: - - BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 - IP: encrypted_update+0xb0/0x170 - PGD 7a178067 P4D 7a178067 PUD 77269067 PMD 0 - PREEMPT SMP - CPU: 0 PID: 340 Comm: reproduce Tainted: G D 4.14.0-rc1-00025-g428490e38b2e #796 - Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 - task: ffff8a467a39a340 task.stack: ffffb15c40770000 - RIP: 0010:encrypted_update+0xb0/0x170 - RSP: 0018:ffffb15c40773de8 EFLAGS: 00010246 - RAX: 0000000000000000 RBX: ffff8a467a275b00 RCX: 0000000000000000 - RDX: 0000000000000005 RSI: ffff8a467a275b14 RDI: ffffffffb742f303 - RBP: ffffb15c40773e20 R08: 0000000000000000 R09: ffff8a467a275b17 - R10: 0000000000000020 R11: 0000000000000000 R12: 0000000000000000 - R13: 0000000000000000 R14: ffff8a4677057180 R15: ffff8a467a275b0f - FS: 00007f5d7fb08700(0000) GS:ffff8a467f200000(0000) knlGS:0000000000000000 - CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 - CR2: 0000000000000018 CR3: 0000000077262005 CR4: 00000000001606f0 - Call Trace: - key_create_or_update+0x2bc/0x460 - SyS_add_key+0x10c/0x1d0 - entry_SYSCALL_64_fastpath+0x1f/0xbe - RIP: 0033:0x7f5d7f211259 - RSP: 002b:00007ffed03904c8 EFLAGS: 00000246 ORIG_RAX: 00000000000000f8 - RAX: ffffffffffffffda RBX: 000000003b2a7955 RCX: 00007f5d7f211259 - RDX: 00000000004009e4 RSI: 00000000004009ff RDI: 0000000000400a04 - RBP: 0000000068db8bad R08: 000000003b2a7955 R09: 0000000000000004 - R10: 000000000000001a R11: 0000000000000246 R12: 0000000000400868 - R13: 00007ffed03905d0 R14: 0000000000000000 R15: 0000000000000000 - Code: 77 28 e8 64 34 1f 00 45 31 c0 31 c9 48 8d 55 c8 48 89 df 48 8d 75 d0 e8 ff f9 ff ff 85 c0 41 89 c4 0f 88 84 00 00 00 4c 8b 7d c8 <49> 8b 75 18 4c 89 ff e8 24 f8 ff ff 85 c0 41 89 c4 78 6d 49 8b - RIP: encrypted_update+0xb0/0x170 RSP: ffffb15c40773de8 - CR2: 0000000000000018 - -Cc: [v2.6.12+] -Signed-off-by: Eric Biggers ---- - security/keys/keyring.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/security/keys/keyring.c b/security/keys/keyring.c -index 4fa82a8a9c0e..129a4175760b 100644 ---- a/security/keys/keyring.c -+++ b/security/keys/keyring.c -@@ -1056,8 +1056,8 @@ EXPORT_SYMBOL(keyring_restrict); - * caller must also hold a lock on the keyring semaphore. - * - * Returns a pointer to the found key with usage count incremented if -- * successful and returns NULL if not found. Revoked and invalidated keys are -- * skipped over. -+ * successful and returns NULL if not found. Revoked, invalidated, and -+ * uninstantiated keys are skipped over. (But negative keys are not!) - * - * If successful, the possession indicator is propagated from the keyring ref - * to the returned key reference. -@@ -1084,8 +1084,10 @@ key_ref_t find_key_to_update(key_ref_t keyring_ref, - - found: - key = keyring_ptr_to_key(object); -- if (key->flags & ((1 << KEY_FLAG_INVALIDATED) | -- (1 << KEY_FLAG_REVOKED))) { -+ if ((key->flags & ((1 << KEY_FLAG_INVALIDATED) | -+ (1 << KEY_FLAG_REVOKED) | -+ (1 << KEY_FLAG_INSTANTIATED))) != -+ (1 << KEY_FLAG_INSTANTIATED)) { - kleave(" = NULL [x]"); - return NULL; - } --- -2.13.6 - diff --git a/KEYS-fix-race-between-updating-and-finding-negative-.patch b/KEYS-fix-race-between-updating-and-finding-negative-.patch deleted file mode 100644 index e72cdaf4a..000000000 --- a/KEYS-fix-race-between-updating-and-finding-negative-.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 4b244721c11c2f66052ceadd8ef6c48a53290e10 Mon Sep 17 00:00:00 2001 -From: Eric Biggers -Date: Wed, 27 Sep 2017 12:50:42 -0700 -Subject: [PATCH] KEYS: fix race between updating and finding negative key - -In keyring_search_iterator() and in wait_for_key_construction(), we -check whether the key has been negatively instantiated, and if so return -the key's ->reject_error. - -However, no lock is held during this, and ->reject_error is in union -with ->payload. And it's impossible for KEY_FLAG_NEGATIVE to be updated -atomically with respect to ->reject_error and ->payload. - -Most problematically, when a negative key is positively instantiated via -__key_update() (via sys_add_key()), ->payload is initialized first, then -KEY_FLAG_NEGATIVE is cleared. But that means that ->reject_error can be -observed to have a bogus value, having been overwritten with ->payload, -while the key still appears to be "negative". Clearing -KEY_FLAG_NEGATIVE first wouldn't work either, since then anyone who -accesses the payload under rcu_read_lock() rather than the key semaphore -might observe an uninitialized ->payload. Nor can we just always take -the key's semaphore when checking whether the key is negative, since -keyring searches happen under rcu_read_lock(). - -Therefore, fix the bug by moving ->reject_error into the high bits of -->flags so that we can read and write it atomically with respect to -KEY_FLAG_NEGATIVE and KEY_FLAG_INSTANTIATED. - -This will also allow KEY_FLAG_NEGATIVE to be removed, since tests for -KEY_FLAG_NEGATIVE can be replaced with tests for nonzero reject_error. -But for ease of backporting this fix, that is left for a later patch. - -This fixes a kernel crash caused by the following program: - - #include - #include - #include - - int main(void) - { - int ringid = keyctl_join_session_keyring(NULL); - - if (fork()) { - for (;;) { - usleep(rand() % 4096); - add_key("user", "desc", "x", 1, ringid); - keyctl_clear(ringid); - } - } else { - for (;;) - request_key("user", "desc", "", ringid); - } - } - -Here is the crash: - - BUG: unable to handle kernel paging request at fffffffffd39a6b0 - IP: __key_link_begin+0x0/0x100 - PGD 7a0a067 P4D 7a0a067 PUD 7a0c067 PMD 0 - Oops: 0000 [#1] SMP - CPU: 1 PID: 165 Comm: keyctl_negate_r Not tainted 4.14.0-rc1 #377 - Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-20170228_101828-anatol 04/01/2014 - task: ffff9791fd809140 task.stack: ffffacba402bc000 - RIP: 0010:__key_link_begin+0x0/0x100 - RSP: 0018:ffffacba402bfdc8 EFLAGS: 00010282 - RAX: ffff9791fd809140 RBX: fffffffffd39a620 RCX: 0000000000000008 - RDX: ffffacba402bfdd0 RSI: fffffffffd39a6a0 RDI: ffff9791fd810600 - RBP: ffffacba402bfdf8 R08: 0000000000000063 R09: ffffffff94845620 - R10: 8080808080808080 R11: 0000000000000004 R12: ffff9791fd810600 - R13: ffff9791fd39a940 R14: fffffffffd39a6a0 R15: 0000000000000000 - FS: 00007fbf14a90740(0000) GS:ffff9791ffd00000(0000) knlGS:0000000000000000 - CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 - CR2: fffffffffd39a6b0 CR3: 000000003b910003 CR4: 00000000003606e0 - Call Trace: - ? key_link+0x28/0xb0 - ? search_process_keyrings+0x13/0x100 - request_key_and_link+0xcb/0x550 - ? keyring_instantiate+0x110/0x110 - ? key_default_cmp+0x20/0x20 - SyS_request_key+0xc0/0x160 - ? exit_to_usermode_loop+0x5e/0x80 - entry_SYSCALL_64_fastpath+0x1a/0xa5 - RIP: 0033:0x7fbf14190bb9 - RSP: 002b:00007ffd8e4fe6c8 EFLAGS: 00000246 ORIG_RAX: 00000000000000f9 - RAX: ffffffffffffffda RBX: 0000000036cc28fb RCX: 00007fbf14190bb9 - RDX: 000055748b56ca4a RSI: 000055748b56ca46 RDI: 000055748b56ca4b - RBP: 000055748b56ca4a R08: 0000000000000001 R09: 0000000000000001 - R10: 0000000036cc28fb R11: 0000000000000246 R12: 000055748b56c8b0 - R13: 00007ffd8e4fe7d0 R14: 0000000000000000 R15: 0000000000000000 - Code: c5 0f 85 69 ff ff ff 48 c7 c3 82 ff ff ff eb ab 45 31 ed e9 18 ff ff ff 85 c0 75 8d eb d2 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 <48> 83 7e 10 00 0f 84 c5 00 00 00 55 48 89 e5 41 57 41 56 41 55 - RIP: __key_link_begin+0x0/0x100 RSP: ffffacba402bfdc8 - CR2: fffffffffd39a6b0 - -Fixes: 146aa8b1453b ("KEYS: Merge the type-specific data with the payload data") -Cc: [v4.4+] -Signed-off-by: Eric Biggers ---- - include/linux/key.h | 12 +++++++++++- - security/keys/key.c | 26 +++++++++++++++++++------- - security/keys/keyctl.c | 3 +++ - security/keys/keyring.c | 4 ++-- - security/keys/request_key.c | 11 +++++++---- - 5 files changed, 42 insertions(+), 14 deletions(-) - -diff --git a/include/linux/key.h b/include/linux/key.h -index e315e16b6ff8..b7b590d7c480 100644 ---- a/include/linux/key.h -+++ b/include/linux/key.h -@@ -189,6 +189,17 @@ struct key { - #define KEY_FLAG_KEEP 10 /* set if key should not be removed */ - #define KEY_FLAG_UID_KEYRING 11 /* set if key is a user or user session keyring */ - -+ /* -+ * If the key is negatively instantiated, then bits 20-31 hold the error -+ * code which should be returned when someone tries to use the key -+ * (unless they allow negative keys). The error code is stored as a -+ * positive number, so it must be negated before being returned. -+ * -+ * Note that a key can go from negative to positive but not vice versa. -+ */ -+#define KEY_FLAGS_REJECT_ERROR_SHIFT 20 -+#define KEY_FLAGS_REJECT_ERROR_MASK 0xFFF00000 -+ - /* the key type and key description string - * - the desc is used to match a key against search criteria - * - it should be a printable string -@@ -213,7 +224,6 @@ struct key { - struct list_head name_link; - struct assoc_array keys; - }; -- int reject_error; - }; - - /* This is set on a keyring to restrict the addition of a link to a key -diff --git a/security/keys/key.c b/security/keys/key.c -index eb914a838840..786158d3442e 100644 ---- a/security/keys/key.c -+++ b/security/keys/key.c -@@ -401,6 +401,20 @@ int key_payload_reserve(struct key *key, size_t datalen) - } - EXPORT_SYMBOL(key_payload_reserve); - -+static void mark_key_instantiated(struct key *key, unsigned int reject_error) -+{ -+ unsigned long old, new; -+ -+ do { -+ old = READ_ONCE(key->flags); -+ new = (old & ~((1 << KEY_FLAG_NEGATIVE) | -+ KEY_FLAGS_REJECT_ERROR_MASK)) | -+ (1 << KEY_FLAG_INSTANTIATED) | -+ (reject_error ? (1 << KEY_FLAG_NEGATIVE) : 0) | -+ (reject_error << KEY_FLAGS_REJECT_ERROR_SHIFT); -+ } while (cmpxchg_release(&key->flags, old, new) != old); -+} -+ - /* - * Instantiate a key and link it into the target keyring atomically. Must be - * called with the target keyring's semaphore writelocked. The target key's -@@ -431,7 +445,7 @@ static int __key_instantiate_and_link(struct key *key, - if (ret == 0) { - /* mark the key as being instantiated */ - atomic_inc(&key->user->nikeys); -- set_bit(KEY_FLAG_INSTANTIATED, &key->flags); -+ mark_key_instantiated(key, 0); - - if (test_and_clear_bit(KEY_FLAG_USER_CONSTRUCT, &key->flags)) - awaken = 1; -@@ -580,10 +594,8 @@ int key_reject_and_link(struct key *key, - if (!test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) { - /* mark the key as being negatively instantiated */ - atomic_inc(&key->user->nikeys); -- key->reject_error = -error; -- smp_wmb(); -- set_bit(KEY_FLAG_NEGATIVE, &key->flags); -- set_bit(KEY_FLAG_INSTANTIATED, &key->flags); -+ mark_key_instantiated(key, error); -+ - now = current_kernel_time(); - key->expiry = now.tv_sec + timeout; - key_schedule_gc(key->expiry + key_gc_delay); -@@ -753,7 +765,7 @@ static inline key_ref_t __key_update(key_ref_t key_ref, - ret = key->type->update(key, prep); - if (ret == 0) - /* updating a negative key instantiates it */ -- clear_bit(KEY_FLAG_NEGATIVE, &key->flags); -+ mark_key_instantiated(key, 0); - - up_write(&key->sem); - -@@ -987,7 +999,7 @@ int key_update(key_ref_t key_ref, const void *payload, size_t plen) - ret = key->type->update(key, &prep); - if (ret == 0) - /* updating a negative key instantiates it */ -- clear_bit(KEY_FLAG_NEGATIVE, &key->flags); -+ mark_key_instantiated(key, 0); - - up_write(&key->sem); - -diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c -index 365ff85d7e27..19a09e121089 100644 ---- a/security/keys/keyctl.c -+++ b/security/keys/keyctl.c -@@ -1223,6 +1223,9 @@ long keyctl_reject_key(key_serial_t id, unsigned timeout, unsigned error, - error == ERESTART_RESTARTBLOCK) - return -EINVAL; - -+ BUILD_BUG_ON(MAX_ERRNO > (KEY_FLAGS_REJECT_ERROR_MASK >> -+ KEY_FLAGS_REJECT_ERROR_SHIFT)); -+ - /* the appropriate instantiation authorisation key must have been - * assumed before calling this */ - ret = -EPERM; -diff --git a/security/keys/keyring.c b/security/keys/keyring.c -index 129a4175760b..e54ad0ed7aa4 100644 ---- a/security/keys/keyring.c -+++ b/security/keys/keyring.c -@@ -598,8 +598,8 @@ static int keyring_search_iterator(const void *object, void *iterator_data) - if (ctx->flags & KEYRING_SEARCH_DO_STATE_CHECK) { - /* we set a different error code if we pass a negative key */ - if (kflags & (1 << KEY_FLAG_NEGATIVE)) { -- smp_rmb(); -- ctx->result = ERR_PTR(key->reject_error); -+ ctx->result = ERR_PTR(-(int)(kflags >> -+ KEY_FLAGS_REJECT_ERROR_SHIFT)); - kleave(" = %d [neg]", ctx->skipped_ret); - goto skipped; - } -diff --git a/security/keys/request_key.c b/security/keys/request_key.c -index 63e63a42db3c..0aab68344837 100644 ---- a/security/keys/request_key.c -+++ b/security/keys/request_key.c -@@ -590,15 +590,18 @@ struct key *request_key_and_link(struct key_type *type, - int wait_for_key_construction(struct key *key, bool intr) - { - int ret; -+ unsigned long flags; - - ret = wait_on_bit(&key->flags, KEY_FLAG_USER_CONSTRUCT, - intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); - if (ret) - return -ERESTARTSYS; -- if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) { -- smp_rmb(); -- return key->reject_error; -- } -+ -+ /* Pairs with RELEASE in mark_key_instantiated() */ -+ flags = smp_load_acquire(&key->flags); -+ if (flags & (1 << KEY_FLAG_NEGATIVE)) -+ return -(int)(flags >> KEY_FLAGS_REJECT_ERROR_SHIFT); -+ - return key_validate(key); - } - EXPORT_SYMBOL(wait_for_key_construction); --- -2.13.6 - diff --git a/kernel.spec b/kernel.spec index a0711d2b8..a692f66bf 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 9 +%define stable_update 10 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -661,10 +661,6 @@ Patch337: arm64-aw64-devices.patch # CVE-2017-7477 rhbz 1445207 1445208 Patch502: CVE-2017-7477.patch -# rhbz 1498016 1498017 -Patch503: KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch -Patch504: KEYS-fix-race-between-updating-and-finding-negative-.patch - # 600 - Patches for improved Bay and Cherry Trail device support # Below patches are submitted upstream, awaiting review / merging Patch601: 0001-Input-gpio_keys-Allow-suppression-of-input-events-fo.patch @@ -2260,6 +2256,9 @@ fi # # %changelog +* Fri Oct 27 2017 Jeremy Cline - 4.13.10-300 +- Linux v4.13.10 + * Mon Oct 23 2017 Laura Abbott - 4.13.9-300 - Linux v4.13.9 diff --git a/sources b/sources index 8fbe1f0e9..8fadb3c48 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.9.xz) = 3046ee2ef416e0f75908063192eae076d9018cba3f87b9eb1734df6a0f0d12fe79b6bda5d7713c3d663c8f418d3db1bdb64fb88f76660345911dcb2d857f41f7 +SHA512 (patch-4.13.10.xz) = 634d81ea509aac5555d8d11631babe9bb04ea771c873f084cea7067313a566d5cad291b0c311002ae8d1d6dd498a93a9a43517923aa449eebb405fb4c1e34753 From ae4f920b2866951708ee3038d715f5d2a4ca1547 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Oct 2017 13:59:02 +0100 Subject: [PATCH 056/289] Remove patch which should have never been added --- ...IC-support-on-x86_64-for-battery-cha.patch | 546 ------------------ 1 file changed, 546 deletions(-) delete mode 100644 0001-Enable-AXP288-PMIC-support-on-x86_64-for-battery-cha.patch diff --git a/0001-Enable-AXP288-PMIC-support-on-x86_64-for-battery-cha.patch b/0001-Enable-AXP288-PMIC-support-on-x86_64-for-battery-cha.patch deleted file mode 100644 index ce1573dcc..000000000 --- a/0001-Enable-AXP288-PMIC-support-on-x86_64-for-battery-cha.patch +++ /dev/null @@ -1,546 +0,0 @@ -From 7a434df40dcabc68902502994faf652936493e51 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 14 Jun 2017 17:30:36 +0200 -Subject: [RFC PATCH] Enable AXP288 PMIC support on x86_64 for battery charging - and monitoring support on Bay and Cherry Trail tablets and laptops Enable - various drivers for peripherals found on Bay and Cherry Trail tablets - ---- - baseconfig/x86/x86_64/CONFIG_AK8975 | 1 + - baseconfig/x86/x86_64/CONFIG_AXP20X_ADC | 1 + - baseconfig/x86/x86_64/CONFIG_AXP20X_POWER | 1 + - baseconfig/x86/x86_64/CONFIG_AXP288_ADC | 1 + - baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER | 1 + - baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE | 1 + - baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042 | 1 + - baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190 | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288 | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_INT3496 | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355 | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502 | 1 + - baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO | 1 + - baseconfig/x86/x86_64/CONFIG_GPIO_AXP209 | 1 + - baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE | 1 + - baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI | 1 + - .../x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM | 1 + - baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK | 1 + - baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C | 1 + - baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO | 1 + - baseconfig/x86/x86_64/CONFIG_MFD_AXP20X | 1 + - baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C | 1 + - baseconfig/x86/x86_64/CONFIG_SILEAD_DMI | 1 + - baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM | 1 + - baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION | 1 + - kernel-x86_64-debug.config | 39 ++++++++++++++-------- - kernel-x86_64.config | 39 ++++++++++++++-------- - kernel.spec | 5 +++ - 31 files changed, 85 insertions(+), 26 deletions(-) - create mode 100644 baseconfig/x86/x86_64/CONFIG_AK8975 - create mode 100644 baseconfig/x86/x86_64/CONFIG_AXP20X_ADC - create mode 100644 baseconfig/x86/x86_64/CONFIG_AXP20X_POWER - create mode 100644 baseconfig/x86/x86_64/CONFIG_AXP288_ADC - create mode 100644 baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER - create mode 100644 baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE - create mode 100644 baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042 - create mode 100644 baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190 - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288 - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_INT3496 - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355 - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502 - create mode 100644 baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO - create mode 100644 baseconfig/x86/x86_64/CONFIG_GPIO_AXP209 - create mode 100644 baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE - create mode 100644 baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI - create mode 100644 baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM - create mode 100644 baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK - create mode 100644 baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C - create mode 100644 baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO - create mode 100644 baseconfig/x86/x86_64/CONFIG_MFD_AXP20X - create mode 100644 baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C - create mode 100644 baseconfig/x86/x86_64/CONFIG_SILEAD_DMI - create mode 100644 baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM - create mode 100644 baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION - -diff --git a/baseconfig/x86/x86_64/CONFIG_AK8975 b/baseconfig/x86/x86_64/CONFIG_AK8975 -new file mode 100644 -index 00000000..547c21a9 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_AK8975 -@@ -0,0 +1 @@ -+CONFIG_AK8975=m -diff --git a/baseconfig/x86/x86_64/CONFIG_AXP20X_ADC b/baseconfig/x86/x86_64/CONFIG_AXP20X_ADC -new file mode 100644 -index 00000000..0960ee66 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_AXP20X_ADC -@@ -0,0 +1 @@ -+# CONFIG_AXP20X_ADC is not set -diff --git a/baseconfig/x86/x86_64/CONFIG_AXP20X_POWER b/baseconfig/x86/x86_64/CONFIG_AXP20X_POWER -new file mode 100644 -index 00000000..e02cee70 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_AXP20X_POWER -@@ -0,0 +1 @@ -+# CONFIG_AXP20X_POWER is not set -diff --git a/baseconfig/x86/x86_64/CONFIG_AXP288_ADC b/baseconfig/x86/x86_64/CONFIG_AXP288_ADC -new file mode 100644 -index 00000000..e138f36a ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_AXP288_ADC -@@ -0,0 +1 @@ -+CONFIG_AXP288_ADC=m -diff --git a/baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER b/baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER -new file mode 100644 -index 00000000..0418f962 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER -@@ -0,0 +1 @@ -+CONFIG_AXP288_CHARGER=m -diff --git a/baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE b/baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE -new file mode 100644 -index 00000000..e171b954 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE -@@ -0,0 +1 @@ -+CONFIG_AXP288_FUEL_GAUGE=m -diff --git a/baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042 b/baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042 -new file mode 100644 -index 00000000..669e6ac2 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042 -@@ -0,0 +1 @@ -+CONFIG_BATTERY_MAX17042=m -diff --git a/baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190 b/baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190 -new file mode 100644 -index 00000000..3128bb67 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190 -@@ -0,0 +1 @@ -+CONFIG_CHARGER_BQ24190=m -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON b/baseconfig/x86/x86_64/CONFIG_EXTCON -new file mode 100644 -index 00000000..0a7190c0 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON -@@ -0,0 +1 @@ -+CONFIG_EXTCON=m -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288 b/baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288 -new file mode 100644 -index 00000000..7fadeb58 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288 -@@ -0,0 +1 @@ -+CONFIG_EXTCON_AXP288=m -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO b/baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO -new file mode 100644 -index 00000000..87ca2bd0 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO -@@ -0,0 +1 @@ -+# CONFIG_EXTCON_GPIO is not set -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_INT3496 b/baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_INT3496 -new file mode 100644 -index 00000000..3f6c5d6f ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_INT3496 -@@ -0,0 +1 @@ -+CONFIG_EXTCON_INTEL_INT3496=m -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355 b/baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355 -new file mode 100644 -index 00000000..680b5a77 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355 -@@ -0,0 +1 @@ -+# CONFIG_EXTCON_MAX3355 is not set -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A b/baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A -new file mode 100644 -index 00000000..e5f7236c ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A -@@ -0,0 +1 @@ -+# CONFIG_EXTCON_RT8973A is not set -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502 b/baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502 -new file mode 100644 -index 00000000..916994aa ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502 -@@ -0,0 +1 @@ -+# CONFIG_EXTCON_SM5502 is not set -diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO b/baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO -new file mode 100644 -index 00000000..7a0c9af3 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO -@@ -0,0 +1 @@ -+# CONFIG_EXTCON_USB_GPIO is not set -diff --git a/baseconfig/x86/x86_64/CONFIG_GPIO_AXP209 b/baseconfig/x86/x86_64/CONFIG_GPIO_AXP209 -new file mode 100644 -index 00000000..2365ae70 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_GPIO_AXP209 -@@ -0,0 +1 @@ -+CONFIG_GPIO_AXP209=m -diff --git a/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE -new file mode 100644 -index 00000000..f9cdc633 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE -@@ -0,0 +1 @@ -+CONFIG_I2C_DESIGNWARE_CORE=y -diff --git a/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI -new file mode 100644 -index 00000000..6103f947 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI -@@ -0,0 +1 @@ -+CONFIG_I2C_DESIGNWARE_PCI=y -diff --git a/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM -new file mode 100644 -index 00000000..3d50a3e8 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM -@@ -0,0 +1 @@ -+CONFIG_I2C_DESIGNWARE_PLATFORM=y -diff --git a/baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK b/baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK -new file mode 100644 -index 00000000..e2fbdf90 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK -@@ -0,0 +1 @@ -+CONFIG_INPUT_AXP20X_PEK=m -diff --git a/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C -new file mode 100644 -index 00000000..8ec049b0 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C -@@ -0,0 +1 @@ -+CONFIG_INV_MPU6050_I2C=m -diff --git a/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO -new file mode 100644 -index 00000000..ae4889d9 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO -@@ -0,0 +1 @@ -+CONFIG_INV_MPU6050_IIO=m -diff --git a/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X -new file mode 100644 -index 00000000..ada79c0d ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X -@@ -0,0 +1 @@ -+CONFIG_MFD_AXP20X=y -diff --git a/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C -new file mode 100644 -index 00000000..22c60295 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C -@@ -0,0 +1 @@ -+CONFIG_MFD_AXP20X_I2C=y -diff --git a/baseconfig/x86/x86_64/CONFIG_SILEAD_DMI b/baseconfig/x86/x86_64/CONFIG_SILEAD_DMI -new file mode 100644 -index 00000000..25b01735 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_SILEAD_DMI -@@ -0,0 +1 @@ -+CONFIG_SILEAD_DMI=y -diff --git a/baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM b/baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM -new file mode 100644 -index 00000000..060ebfc9 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM -@@ -0,0 +1 @@ -+CONFIG_USB_XHCI_PLATFORM=m -diff --git a/baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION b/baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION -new file mode 100644 -index 00000000..8c98df14 ---- /dev/null -+++ b/baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION -@@ -0,0 +1 @@ -+CONFIG_XPOWER_PMIC_OPREGION=y -diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config -index 08b52a89..d8d38c8e 100644 ---- a/kernel-x86_64-debug.config -+++ b/kernel-x86_64-debug.config -@@ -192,7 +192,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000 - CONFIG_AIX_PARTITION=y - # CONFIG_AK09911 is not set - # CONFIG_AK8974 is not set --# CONFIG_AK8975 is not set -+CONFIG_AK8975=m - # CONFIG_AL3320A is not set - CONFIG_ALIENWARE_WMI=m - CONFIG_ALI_FIR=m -@@ -326,6 +326,11 @@ CONFIG_AUXDISPLAY=y - # CONFIG_AVERAGE is not set - CONFIG_AX25_DAMA_SLAVE=y - CONFIG_AX25=m -+# CONFIG_AXP20X_ADC is not set -+# CONFIG_AXP20X_POWER is not set -+CONFIG_AXP288_ADC=m -+CONFIG_AXP288_CHARGER=m -+CONFIG_AXP288_FUEL_GAUGE=m - CONFIG_B43_BCMA_PIO=y - CONFIG_B43_BCMA=y - CONFIG_B43_DEBUG=y -@@ -385,7 +390,7 @@ CONFIG_BATMAN_ADV_NC=y - # CONFIG_BATTERY_GAUGE_LTC2941 is not set - # CONFIG_BATTERY_LEGO_EV3 is not set - # CONFIG_BATTERY_MAX17040 is not set --# CONFIG_BATTERY_MAX17042 is not set -+CONFIG_BATTERY_MAX17042=m - # CONFIG_BATTERY_SBS is not set - CONFIG_BAYCOM_EPP=m - CONFIG_BAYCOM_PAR=m -@@ -699,7 +704,7 @@ CONFIG_CGROUP_PIDS=y - CONFIG_CGROUP_SCHED=y - CONFIG_CGROUPS=y - # CONFIG_CHARGER_BQ2415X is not set --# CONFIG_CHARGER_BQ24190 is not set -+CONFIG_CHARGER_BQ24190=m - # CONFIG_CHARGER_BQ24257 is not set - # CONFIG_CHARGER_BQ24735 is not set - # CONFIG_CHARGER_BQ25890 is not set -@@ -1397,10 +1402,16 @@ CONFIG_EXT4_FS_SECURITY=y - CONFIG_EXT4_FS=y - CONFIG_EXT4_USE_FOR_EXT2=y - # CONFIG_EXTCON_ADC_JACK is not set -+CONFIG_EXTCON_AXP288=m -+# CONFIG_EXTCON_GPIO is not set - CONFIG_EXTCON_INTEL_CHT_WC=y - CONFIG_EXTCON_INTEL_INT3496=m --# CONFIG_EXTCON is not set -+CONFIG_EXTCON=m -+# CONFIG_EXTCON_MAX3355 is not set - # CONFIG_EXTCON_QCOM_SPMI_MISC is not set -+# CONFIG_EXTCON_RT8973A is not set -+# CONFIG_EXTCON_SM5502 is not set -+# CONFIG_EXTCON_USB_GPIO is not set - CONFIG_EXTRA_FIRMWARE="" - # CONFIG_EZNPS_GIC is not set - # CONFIG_EZX_PCAP is not set -@@ -1617,6 +1628,7 @@ CONFIG_GIRBIL_DONGLE=m - # CONFIG_GPIO_ALTERA is not set - # CONFIG_GPIO_AMD8111 is not set - # CONFIG_GPIO_AMDPT is not set -+CONFIG_GPIO_AXP209=m - # CONFIG_GPIO_BT8XX is not set - CONFIG_GPIO_CRYSTAL_COVE=y - # CONFIG_GPIO_CS5535 is not set -@@ -1903,10 +1915,10 @@ CONFIG_I2C_COMPAT=y - # CONFIG_I2C_DEBUG_CORE is not set - # CONFIG_I2C_DEMUX_PINCTRL is not set - CONFIG_I2C_DESIGNWARE_BAYTRAIL=y --CONFIG_I2C_DESIGNWARE_CORE=m -+CONFIG_I2C_DESIGNWARE_CORE=y - # CONFIG_I2C_DESIGNWARE is not set --CONFIG_I2C_DESIGNWARE_PCI=m --CONFIG_I2C_DESIGNWARE_PLATFORM=m -+CONFIG_I2C_DESIGNWARE_PCI=y -+CONFIG_I2C_DESIGNWARE_PLATFORM=y - CONFIG_I2C_DIOLAN_U2C=m - # CONFIG_I2C_EG20T is not set - # CONFIG_I2C_EMEV2 is not set -@@ -2086,6 +2098,7 @@ CONFIG_INPUT_APANEL=m - CONFIG_INPUT_ATI_REMOTE2=m - CONFIG_INPUT_ATLAS_BTNS=m - # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -+CONFIG_INPUT_AXP20X_PEK=m - # CONFIG_INPUT_BMA150 is not set - CONFIG_INPUT_CM109=m - CONFIG_INPUT_CMA3000_I2C=m -@@ -2184,8 +2197,8 @@ CONFIG_INTEL_TXT=y - CONFIG_INTEL_VBTN=m - CONFIG_INTEL_XWAY_PHY=m - # CONFIG_INTERVAL_TREE_TEST is not set --# CONFIG_INV_MPU6050_I2C is not set --# CONFIG_INV_MPU6050_IIO is not set -+CONFIG_INV_MPU6050_I2C=m -+CONFIG_INV_MPU6050_IIO=m - # CONFIG_INV_MPU6050_SPI is not set - # CONFIG_IOMMU_DEBUG is not set - # CONFIG_IOMMU_STRESS is not set -@@ -2864,8 +2877,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 - # CONFIG_MFD_ASIC3 is not set - # CONFIG_MFD_ATMEL_FLEXCOM is not set - # CONFIG_MFD_ATMEL_HLCDC is not set --# CONFIG_MFD_AXP20X_I2C is not set --# CONFIG_MFD_AXP20X is not set -+CONFIG_MFD_AXP20X_I2C=y -+CONFIG_MFD_AXP20X=y - # CONFIG_MFD_BCM590XX is not set - CONFIG_MFD_CORE=y - # CONFIG_MFD_CPCAP is not set -@@ -4695,7 +4708,7 @@ CONFIG_SH_ETH=m - # CONFIG_SIGMA is not set - CONFIG_SIGMATEL_FIR=m - CONFIG_SIGNED_PE_FILE_VERIFICATION=y --# CONFIG_SILEAD_DMI is not set -+CONFIG_SILEAD_DMI=y - CONFIG_SIS190=m - CONFIG_SIS900=m - # CONFIG_SKFP is not set -@@ -5731,7 +5744,7 @@ CONFIG_USB_WDM=m - CONFIG_USB_WUSB_CBAF=m - CONFIG_USB_WUSB=m - CONFIG_USB_XHCI_HCD=y --# CONFIG_USB_XHCI_PLATFORM is not set -+CONFIG_USB_XHCI_PLATFORM=m - CONFIG_USB_XUSBATM=m - CONFIG_USB=y - CONFIG_USB_YUREX=m -diff --git a/kernel-x86_64.config b/kernel-x86_64.config -index 9fedd204..abcc8bb4 100644 ---- a/kernel-x86_64.config -+++ b/kernel-x86_64.config -@@ -192,7 +192,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000 - CONFIG_AIX_PARTITION=y - # CONFIG_AK09911 is not set - # CONFIG_AK8974 is not set --# CONFIG_AK8975 is not set -+CONFIG_AK8975=m - # CONFIG_AL3320A is not set - CONFIG_ALIENWARE_WMI=m - CONFIG_ALI_FIR=m -@@ -325,6 +325,11 @@ CONFIG_AUXDISPLAY=y - # CONFIG_AVERAGE is not set - CONFIG_AX25_DAMA_SLAVE=y - CONFIG_AX25=m -+# CONFIG_AXP20X_ADC is not set -+# CONFIG_AXP20X_POWER is not set -+CONFIG_AXP288_ADC=m -+CONFIG_AXP288_CHARGER=m -+CONFIG_AXP288_FUEL_GAUGE=m - CONFIG_B43_BCMA_PIO=y - CONFIG_B43_BCMA=y - CONFIG_B43_DEBUG=y -@@ -384,7 +389,7 @@ CONFIG_BATMAN_ADV_NC=y - # CONFIG_BATTERY_GAUGE_LTC2941 is not set - # CONFIG_BATTERY_LEGO_EV3 is not set - # CONFIG_BATTERY_MAX17040 is not set --# CONFIG_BATTERY_MAX17042 is not set -+CONFIG_BATTERY_MAX17042=m - # CONFIG_BATTERY_SBS is not set - CONFIG_BAYCOM_EPP=m - CONFIG_BAYCOM_PAR=m -@@ -698,7 +703,7 @@ CONFIG_CGROUP_PIDS=y - CONFIG_CGROUP_SCHED=y - CONFIG_CGROUPS=y - # CONFIG_CHARGER_BQ2415X is not set --# CONFIG_CHARGER_BQ24190 is not set -+CONFIG_CHARGER_BQ24190=m - # CONFIG_CHARGER_BQ24257 is not set - # CONFIG_CHARGER_BQ24735 is not set - # CONFIG_CHARGER_BQ25890 is not set -@@ -1386,10 +1391,16 @@ CONFIG_EXT4_FS_SECURITY=y - CONFIG_EXT4_FS=y - CONFIG_EXT4_USE_FOR_EXT2=y - # CONFIG_EXTCON_ADC_JACK is not set -+CONFIG_EXTCON_AXP288=m -+# CONFIG_EXTCON_GPIO is not set - CONFIG_EXTCON_INTEL_CHT_WC=y - CONFIG_EXTCON_INTEL_INT3496=m --# CONFIG_EXTCON is not set -+CONFIG_EXTCON=m -+# CONFIG_EXTCON_MAX3355 is not set - # CONFIG_EXTCON_QCOM_SPMI_MISC is not set -+# CONFIG_EXTCON_RT8973A is not set -+# CONFIG_EXTCON_SM5502 is not set -+# CONFIG_EXTCON_USB_GPIO is not set - CONFIG_EXTRA_FIRMWARE="" - # CONFIG_EZNPS_GIC is not set - # CONFIG_EZX_PCAP is not set -@@ -1599,6 +1610,7 @@ CONFIG_GIRBIL_DONGLE=m - # CONFIG_GPIO_ALTERA is not set - # CONFIG_GPIO_AMD8111 is not set - # CONFIG_GPIO_AMDPT is not set -+CONFIG_GPIO_AXP209=m - # CONFIG_GPIO_BT8XX is not set - CONFIG_GPIO_CRYSTAL_COVE=y - # CONFIG_GPIO_CS5535 is not set -@@ -1885,10 +1897,10 @@ CONFIG_I2C_COMPAT=y - # CONFIG_I2C_DEBUG_CORE is not set - # CONFIG_I2C_DEMUX_PINCTRL is not set - CONFIG_I2C_DESIGNWARE_BAYTRAIL=y --CONFIG_I2C_DESIGNWARE_CORE=m -+CONFIG_I2C_DESIGNWARE_CORE=y - # CONFIG_I2C_DESIGNWARE is not set --CONFIG_I2C_DESIGNWARE_PCI=m --CONFIG_I2C_DESIGNWARE_PLATFORM=m -+CONFIG_I2C_DESIGNWARE_PCI=y -+CONFIG_I2C_DESIGNWARE_PLATFORM=y - CONFIG_I2C_DIOLAN_U2C=m - # CONFIG_I2C_EG20T is not set - # CONFIG_I2C_EMEV2 is not set -@@ -2068,6 +2080,7 @@ CONFIG_INPUT_APANEL=m - CONFIG_INPUT_ATI_REMOTE2=m - CONFIG_INPUT_ATLAS_BTNS=m - # CONFIG_INPUT_ATMEL_CAPTOUCH is not set -+CONFIG_INPUT_AXP20X_PEK=m - # CONFIG_INPUT_BMA150 is not set - CONFIG_INPUT_CM109=m - CONFIG_INPUT_CMA3000_I2C=m -@@ -2166,8 +2179,8 @@ CONFIG_INTEL_TXT=y - CONFIG_INTEL_VBTN=m - CONFIG_INTEL_XWAY_PHY=m - # CONFIG_INTERVAL_TREE_TEST is not set --# CONFIG_INV_MPU6050_I2C is not set --# CONFIG_INV_MPU6050_IIO is not set -+CONFIG_INV_MPU6050_I2C=m -+CONFIG_INV_MPU6050_IIO=m - # CONFIG_INV_MPU6050_SPI is not set - # CONFIG_IOMMU_DEBUG is not set - # CONFIG_IOMMU_STRESS is not set -@@ -2844,8 +2857,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 - # CONFIG_MFD_ASIC3 is not set - # CONFIG_MFD_ATMEL_FLEXCOM is not set - # CONFIG_MFD_ATMEL_HLCDC is not set --# CONFIG_MFD_AXP20X_I2C is not set --# CONFIG_MFD_AXP20X is not set -+CONFIG_MFD_AXP20X_I2C=y -+CONFIG_MFD_AXP20X=y - # CONFIG_MFD_BCM590XX is not set - CONFIG_MFD_CORE=y - # CONFIG_MFD_CPCAP is not set -@@ -4674,7 +4687,7 @@ CONFIG_SH_ETH=m - # CONFIG_SIGMA is not set - CONFIG_SIGMATEL_FIR=m - CONFIG_SIGNED_PE_FILE_VERIFICATION=y --# CONFIG_SILEAD_DMI is not set -+CONFIG_SILEAD_DMI=y - CONFIG_SIS190=m - CONFIG_SIS900=m - # CONFIG_SKFP is not set -@@ -5709,7 +5722,7 @@ CONFIG_USB_WDM=m - CONFIG_USB_WUSB_CBAF=m - CONFIG_USB_WUSB=m - CONFIG_USB_XHCI_HCD=y --# CONFIG_USB_XHCI_PLATFORM is not set -+CONFIG_USB_XHCI_PLATFORM=m - CONFIG_USB_XUSBATM=m - CONFIG_USB=y - CONFIG_USB_YUREX=m -diff --git a/kernel.spec b/kernel.spec -index 3cb67fd1..6d93d2a7 100644 ---- a/kernel.spec -+++ b/kernel.spec -@@ -2165,6 +2165,11 @@ fi - # - # - %changelog -+* Wed Jun 14 2017 Hans de Goede -+- Enable AXP288 PMIC support on x86_64 for battery charging and monitoring -+ support on Bay and Cherry Trail tablets and laptops -+- Enable various drivers for peripherals found on Bay and Cherry Trail tablets -+ - * Mon Jun 12 2017 Justin M. Forbes - 4.12.0-0.rc5.git0.1 - - Linux v4.12-rc5 - - Disable debugging options. --- -2.13.0 - From 3be09c4328d9ad512874a8fa25abcdd5f2818c21 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Oct 2017 14:03:23 +0100 Subject: [PATCH 057/289] Fix 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch having a dmi_table which lacks a terminating entry --- ...platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch | 3 ++- kernel.spec | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch b/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch index e8376331d..2242e2d44 100644 --- a/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch +++ b/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch @@ -33,7 +33,7 @@ index bc98ef95514a..67fa3fa32011 100644 #include #include #include -@@ -64,8 +65,22 @@ static void peaq_wmi_poll(struct input_polled_dev *dev) +@@ -64,8 +65,23 @@ static void peaq_wmi_poll(struct input_polled_dev *dev) } } @@ -45,6 +45,7 @@ index bc98ef95514a..67fa3fa32011 100644 + DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"), + }, + }, ++ {} +}; + static int __init peaq_wmi_init(void) diff --git a/kernel.spec b/kernel.spec index a692f66bf..20625d820 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2256,6 +2256,10 @@ fi # # %changelog +* Mon Oct 30 2017 Hans de Goede +- Fix 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch + having a dmi_table which lacks a terminating entry + * Fri Oct 27 2017 Jeremy Cline - 4.13.10-300 - Linux v4.13.10 From d96b4555801e9d2e41b0825c878b6a224919ae5e Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 1 Nov 2017 08:04:54 -0700 Subject: [PATCH 058/289] Add fix for potential mlxsw firmware incompatibility Originally from Ido Schimmel --- kernel.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel.spec b/kernel.spec index 20625d820..94df3d29c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -702,6 +702,9 @@ Patch631: drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch # fix gnome 3.26+ not working under VirtualBox, submitted upstream, Cc: Stable Patch632: 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch +# http://patchwork.ozlabs.org/patch/831938/ +Patch633: net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch + # END OF PATCH DEFINITIONS %endif @@ -2256,6 +2259,9 @@ fi # # %changelog +* Wed Nov 01 2017 Laura Abbott +- Add fix for potential mlxsw firmware incompatibility + * Mon Oct 30 2017 Hans de Goede - Fix 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch having a dmi_table which lacks a terminating entry From c2a0332822324e904396e18743e327c8f63274c6 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 1 Nov 2017 08:10:37 -0700 Subject: [PATCH 059/289] Missed the patch whoops --- ...-high-and-low-temperature-thresholds.patch | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch diff --git a/net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch b/net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch new file mode 100644 index 000000000..957200e17 --- /dev/null +++ b/net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch @@ -0,0 +1,79 @@ +From patchwork Mon Oct 30 09:51:18 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [net] mlxsw: reg: Add high and low temperature thresholds +X-Patchwork-Submitter: Jiri Pirko +X-Patchwork-Id: 831938 +X-Patchwork-Delegate: davem@davemloft.net +Message-Id: <20171030095118.9098-1-jiri@resnulli.us> +To: netdev@vger.kernel.org +Cc: davem@davemloft.net, idosch@mellanox.com, mlxsw@mellanox.com +Date: Mon, 30 Oct 2017 10:51:18 +0100 +From: Jiri Pirko +List-Id: + +From: Ido Schimmel + +The ASIC has the ability to generate events whenever a sensor indicates +the temperature goes above or below its high or low thresholds, +respectively. + +In new firmware versions the firmware enforces a minimum of 5 +degrees Celsius difference between both thresholds. Make the driver +conform to this requirement. + +Note that this is required even when the events are disabled, as in +certain systems interrupts are generated via GPIO based on these +thresholds. + +Fixes: 85926f877040 ("mlxsw: reg: Add definition of temperature management registers") +Signed-off-by: Ido Schimmel +Signed-off-by: Jiri Pirko +--- + drivers/net/ethernet/mellanox/mlxsw/reg.h | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h b/drivers/net/ethernet/mellanox/mlxsw/reg.h +index 4afc848..5acfbe5 100644 +--- a/drivers/net/ethernet/mellanox/mlxsw/reg.h ++++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h +@@ -5827,6 +5827,29 @@ MLXSW_ITEM32(reg, mtmp, mtr, 0x08, 30, 1); + */ + MLXSW_ITEM32(reg, mtmp, max_temperature, 0x08, 0, 16); + ++/* reg_mtmp_tee ++ * Temperature Event Enable. ++ * 0 - Do not generate event ++ * 1 - Generate event ++ * 2 - Generate single event ++ * Access: RW ++ */ ++MLXSW_ITEM32(reg, mtmp, tee, 0x0C, 30, 2); ++ ++#define MLXSW_REG_MTMP_THRESH_HI 0x348 /* 105 Celsius */ ++ ++/* reg_mtmp_temperature_threshold_hi ++ * High threshold for Temperature Warning Event. In 0.125 Celsius. ++ * Access: RW ++ */ ++MLXSW_ITEM32(reg, mtmp, temperature_threshold_hi, 0x0C, 0, 16); ++ ++/* reg_mtmp_temperature_threshold_lo ++ * Low threshold for Temperature Warning Event. In 0.125 Celsius. ++ * Access: RW ++ */ ++MLXSW_ITEM32(reg, mtmp, temperature_threshold_lo, 0x10, 0, 16); ++ + #define MLXSW_REG_MTMP_SENSOR_NAME_SIZE 8 + + /* reg_mtmp_sensor_name +@@ -5843,6 +5866,8 @@ static inline void mlxsw_reg_mtmp_pack(char *payload, u8 sensor_index, + mlxsw_reg_mtmp_sensor_index_set(payload, sensor_index); + mlxsw_reg_mtmp_mte_set(payload, max_temp_enable); + mlxsw_reg_mtmp_mtr_set(payload, max_temp_reset); ++ mlxsw_reg_mtmp_temperature_threshold_hi_set(payload, ++ MLXSW_REG_MTMP_THRESH_HI); + } + + static inline void mlxsw_reg_mtmp_unpack(char *payload, unsigned int *p_temp, From 3b14f98896f7cde9ed4c787d69eebbf1f37fb432 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 2 Nov 2017 11:01:23 -0400 Subject: [PATCH 060/289] Linux v4.13.11 --- kernel.spec | 11 +- ...ze-support-for-NNP-nosuid-SELinux-do.patch | 220 ++++++++++++++++++ sources | 2 +- 3 files changed, 231 insertions(+), 2 deletions(-) create mode 100644 selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch diff --git a/kernel.spec b/kernel.spec index 94df3d29c..dab1d1d7f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 10 +%define stable_update 11 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -705,6 +705,9 @@ Patch632: 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch # http://patchwork.ozlabs.org/patch/831938/ Patch633: net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch +# Included in 4.14, backport requested on kernel@ +Patch634: selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch + # END OF PATCH DEFINITIONS %endif @@ -2259,6 +2262,12 @@ fi # # %changelog +* Thu Nov 02 2017 Jeremy Cline - 4.13.11-300 +- Linux v4.13.11 +- Fix CVE-2017-12193 (rhbz 1501215 1508717) +- SMB3: Validate negotiate request must always be signed (rhbz 1502606) +- Backport new SELinux NNP/nosuid patch to resolve interactions with systemd + * Wed Nov 01 2017 Laura Abbott - Add fix for potential mlxsw firmware incompatibility diff --git a/selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch b/selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch new file mode 100644 index 000000000..797566c8d --- /dev/null +++ b/selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch @@ -0,0 +1,220 @@ +From af63f4193f9fbbbac50fc766417d74735afd87ef Mon Sep 17 00:00:00 2001 +From: Stephen Smalley +Date: Mon, 31 Jul 2017 10:12:46 -0400 +Subject: [PATCH] selinux: Generalize support for NNP/nosuid SELinux domain + transitions + +As systemd ramps up enabling NNP (NoNewPrivileges) for system services, +it is increasingly breaking SELinux domain transitions for those services +and their descendants. systemd enables NNP not only for services whose +unit files explicitly specify NoNewPrivileges=yes but also for services +whose unit files specify any of the following options in combination with +running without CAP_SYS_ADMIN (e.g. specifying User= or a +CapabilityBoundingSet= without CAP_SYS_ADMIN): SystemCallFilter=, +SystemCallArchitectures=, RestrictAddressFamilies=, RestrictNamespaces=, +PrivateDevices=, ProtectKernelTunables=, ProtectKernelModules=, +MemoryDenyWriteExecute=, or RestrictRealtime= as per the systemd.exec(5) +man page. + +The end result is bad for the security of both SELinux-disabled and +SELinux-enabled systems. Packagers have to turn off these +options in the unit files to preserve SELinux domain transitions. For +users who choose to disable SELinux, this means that they miss out on +at least having the systemd-supported protections. For users who keep +SELinux enabled, they may still be missing out on some protections +because it isn't necessarily guaranteed that the SELinux policy for +that service provides the same protections in all cases. + +commit 7b0d0b40cd78 ("selinux: Permit bounded transitions under +NO_NEW_PRIVS or NOSUID.") allowed bounded transitions under NNP in +order to support limited usage for sandboxing programs. However, +defining typebounds for all of the affected service domains +is impractical to implement in policy, since typebounds requires us +to ensure that each domain is allowed everything all of its descendant +domains are allowed, and this has to be repeated for the entire chain +of domain transitions. There is no way to clone all allow rules from +descendants to their ancestors in policy currently, and doing so would +be undesirable even if it were practical, as it requires leaking +permissions to objects and operations into ancestor domains that could +weaken their own security in order to allow them to the descendants +(e.g. if a descendant requires execmem permission, then so do all of +its ancestors; if a descendant requires execute permission to a file, +then so do all of its ancestors; if a descendant requires read to a +symbolic link or temporary file, then so do all of its ancestors...). +SELinux domains are intentionally not hierarchical / bounded in this +manner normally, and making them so would undermine their protections +and least privilege. + +We have long had a similar tension with SELinux transitions and nosuid +mounts, albeit not as severe. Users often have had to choose between +retaining nosuid on a mount and allowing SELinux domain transitions on +files within those mounts. This likewise leads to unfortunate tradeoffs +in security. + +Decouple NNP/nosuid from SELinux transitions, so that we don't have to +make a choice between them. Introduce a nnp_nosuid_transition policy +capability that enables transitions under NNP/nosuid to be based on +a permission (nnp_transition for NNP; nosuid_transition for nosuid) +between the old and new contexts in addition to the current support +for bounded transitions. Domain transitions can then be allowed in +policy without requiring the parent to be a strict superset of all of +its children. + +With this change, systemd unit files can be left unmodified from upstream. +SELinux-disabled and SELinux-enabled users will benefit from retaining any +of the systemd-provided protections. SELinux policy will only need to +be adapted to enable the new policy capability and to allow the +new permissions between domain pairs as appropriate. + +NB: Allowing nnp_transition between two contexts opens up the potential +for the old context to subvert the new context by installing seccomp +filters before the execve. Allowing nosuid_transition between two contexts +opens up the potential for a context transition to occur on a file from +an untrusted filesystem (e.g. removable media or remote filesystem). Use +with care. + +Signed-off-by: Stephen Smalley +Signed-off-by: Paul Moore +--- + security/selinux/hooks.c | 47 +++++++++++++++++++++++++------------ + security/selinux/include/classmap.h | 2 ++ + security/selinux/include/security.h | 2 ++ + security/selinux/ss/services.c | 7 +++++- + 4 files changed, 42 insertions(+), 16 deletions(-) + +diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c +index 00ad46e166f6..04b8e1082c9a 100644 +--- a/security/selinux/hooks.c ++++ b/security/selinux/hooks.c +@@ -2318,6 +2318,7 @@ static int check_nnp_nosuid(const struct linux_binprm *bprm, + int nnp = (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS); + int nosuid = !mnt_may_suid(bprm->file->f_path.mnt); + int rc; ++ u32 av; + + if (!nnp && !nosuid) + return 0; /* neither NNP nor nosuid */ +@@ -2326,24 +2327,40 @@ static int check_nnp_nosuid(const struct linux_binprm *bprm, + return 0; /* No change in credentials */ + + /* +- * The only transitions we permit under NNP or nosuid +- * are transitions to bounded SIDs, i.e. SIDs that are +- * guaranteed to only be allowed a subset of the permissions +- * of the current SID. ++ * If the policy enables the nnp_nosuid_transition policy capability, ++ * then we permit transitions under NNP or nosuid if the ++ * policy allows the corresponding permission between ++ * the old and new contexts. + */ +- rc = security_bounded_transition(old_tsec->sid, new_tsec->sid); +- if (rc) { +- /* +- * On failure, preserve the errno values for NNP vs nosuid. +- * NNP: Operation not permitted for caller. +- * nosuid: Permission denied to file. +- */ ++ if (selinux_policycap_nnp_nosuid_transition) { ++ av = 0; + if (nnp) +- return -EPERM; +- else +- return -EACCES; ++ av |= PROCESS2__NNP_TRANSITION; ++ if (nosuid) ++ av |= PROCESS2__NOSUID_TRANSITION; ++ rc = avc_has_perm(old_tsec->sid, new_tsec->sid, ++ SECCLASS_PROCESS2, av, NULL); ++ if (!rc) ++ return 0; + } +- return 0; ++ ++ /* ++ * We also permit NNP or nosuid transitions to bounded SIDs, ++ * i.e. SIDs that are guaranteed to only be allowed a subset ++ * of the permissions of the current SID. ++ */ ++ rc = security_bounded_transition(old_tsec->sid, new_tsec->sid); ++ if (!rc) ++ return 0; ++ ++ /* ++ * On failure, preserve the errno values for NNP vs nosuid. ++ * NNP: Operation not permitted for caller. ++ * nosuid: Permission denied to file. ++ */ ++ if (nnp) ++ return -EPERM; ++ return -EACCES; + } + + static int selinux_bprm_set_creds(struct linux_binprm *bprm) +diff --git a/security/selinux/include/classmap.h b/security/selinux/include/classmap.h +index b9fe3434b036..35ffb29a69cb 100644 +--- a/security/selinux/include/classmap.h ++++ b/security/selinux/include/classmap.h +@@ -48,6 +48,8 @@ struct security_class_mapping secclass_map[] = { + "setrlimit", "rlimitinh", "dyntransition", "setcurrent", + "execmem", "execstack", "execheap", "setkeycreate", + "setsockcreate", "getrlimit", NULL } }, ++ { "process2", ++ { "nnp_transition", "nosuid_transition", NULL } }, + { "system", + { "ipc_info", "syslog_read", "syslog_mod", + "syslog_console", "module_request", "module_load", NULL } }, +diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h +index e91f08c16c0b..3e323179159a 100644 +--- a/security/selinux/include/security.h ++++ b/security/selinux/include/security.h +@@ -73,6 +73,7 @@ enum { + POLICYDB_CAPABILITY_EXTSOCKCLASS, + POLICYDB_CAPABILITY_ALWAYSNETWORK, + POLICYDB_CAPABILITY_CGROUPSECLABEL, ++ POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION, + __POLICYDB_CAPABILITY_MAX + }; + #define POLICYDB_CAPABILITY_MAX (__POLICYDB_CAPABILITY_MAX - 1) +@@ -84,6 +85,7 @@ extern int selinux_policycap_openperm; + extern int selinux_policycap_extsockclass; + extern int selinux_policycap_alwaysnetwork; + extern int selinux_policycap_cgroupseclabel; ++extern int selinux_policycap_nnp_nosuid_transition; + + /* + * type_datum properties +diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c +index 2f02fa67ec2e..16c55de21b9f 100644 +--- a/security/selinux/ss/services.c ++++ b/security/selinux/ss/services.c +@@ -76,7 +76,8 @@ char *selinux_policycap_names[__POLICYDB_CAPABILITY_MAX] = { + "open_perms", + "extended_socket_class", + "always_check_network", +- "cgroup_seclabel" ++ "cgroup_seclabel", ++ "nnp_nosuid_transition" + }; + + int selinux_policycap_netpeer; +@@ -84,6 +85,7 @@ int selinux_policycap_openperm; + int selinux_policycap_extsockclass; + int selinux_policycap_alwaysnetwork; + int selinux_policycap_cgroupseclabel; ++int selinux_policycap_nnp_nosuid_transition; + + static DEFINE_RWLOCK(policy_rwlock); + +@@ -2009,6 +2011,9 @@ static void security_load_policycaps(void) + selinux_policycap_cgroupseclabel = + ebitmap_get_bit(&policydb.policycaps, + POLICYDB_CAPABILITY_CGROUPSECLABEL); ++ selinux_policycap_nnp_nosuid_transition = ++ ebitmap_get_bit(&policydb.policycaps, ++ POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION); + + for (i = 0; i < ARRAY_SIZE(selinux_policycap_names); i++) + pr_info("SELinux: policy capability %s=%d\n", +-- +2.14.3 + diff --git a/sources b/sources index 8fadb3c48..5567d2f7e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.10.xz) = 634d81ea509aac5555d8d11631babe9bb04ea771c873f084cea7067313a566d5cad291b0c311002ae8d1d6dd498a93a9a43517923aa449eebb405fb4c1e34753 +SHA512 (patch-4.13.11.xz) = ad38845a4c05fcaace68563ffa005cf537d3564448b28750b2c872788cbc0c2495dbc9fdf98817d21aef41863614d8b707acdfb05d8f07845d921c909b5f1d22 From 867ca6b0a5b9af9ab83dce52af57af834761889d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 4 Nov 2017 16:22:49 +0000 Subject: [PATCH 061/289] Enable IS31FL32xx LED driver --- baseconfig/CONFIG_LEDS_IS31FL32XX | 2 +- kernel-aarch64-debug.config | 2 +- kernel-aarch64.config | 2 +- kernel-armv7hl-debug.config | 2 +- kernel-armv7hl-lpae-debug.config | 2 +- kernel-armv7hl-lpae.config | 2 +- kernel-armv7hl.config | 2 +- kernel-i686-PAE.config | 2 +- kernel-i686-PAEdebug.config | 2 +- kernel-i686-debug.config | 2 +- kernel-i686.config | 2 +- kernel-ppc64-debug.config | 2 +- kernel-ppc64.config | 2 +- kernel-ppc64le-debug.config | 2 +- kernel-ppc64le.config | 2 +- kernel-s390x-debug.config | 2 +- kernel-s390x.config | 2 +- kernel-x86_64-debug.config | 2 +- kernel-x86_64.config | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/baseconfig/CONFIG_LEDS_IS31FL32XX b/baseconfig/CONFIG_LEDS_IS31FL32XX index bc726f797..343dc4dd8 100644 --- a/baseconfig/CONFIG_LEDS_IS31FL32XX +++ b/baseconfig/CONFIG_LEDS_IS31FL32XX @@ -1 +1 @@ -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index c5f3d5c80..fb2298280 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -2680,7 +2680,7 @@ CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_GPIO=m CONFIG_LEDS_GPIO_REGISTER=y # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 1b22c1fa3..056a21e13 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -2661,7 +2661,7 @@ CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_GPIO=m CONFIG_LEDS_GPIO_REGISTER=y # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 37cbe7126..30e2a4ab0 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -2856,7 +2856,7 @@ CONFIG_LEDS_DAC124S085=m CONFIG_LEDS_GPIO=m CONFIG_LEDS_GPIO_REGISTER=y # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 15bbd4bde..0fd13fba4 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -2722,7 +2722,7 @@ CONFIG_LEDS_DAC124S085=m CONFIG_LEDS_GPIO=m CONFIG_LEDS_GPIO_REGISTER=y # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index c9ccc11dd..2b2754971 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -2703,7 +2703,7 @@ CONFIG_LEDS_DAC124S085=m CONFIG_LEDS_GPIO=m CONFIG_LEDS_GPIO_REGISTER=y # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index b40e2382c..a85ff06d3 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -2837,7 +2837,7 @@ CONFIG_LEDS_DAC124S085=m CONFIG_LEDS_GPIO=m CONFIG_LEDS_GPIO_REGISTER=y # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 7dff90320..c0d0cad8e 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -2577,7 +2577,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 9a2763e32..7623aa6cb 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -2597,7 +2597,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 42e032137..1bfbfe612 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -2597,7 +2597,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-i686.config b/kernel-i686.config index 9f1839607..0d6400861 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -2577,7 +2577,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 0612d96b8..0bb02e588 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -2448,7 +2448,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-ppc64.config b/kernel-ppc64.config index a80b9702e..44e9fcad9 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -2428,7 +2428,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 4321059f2..0425ae672 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -2393,7 +2393,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 935002b17..8e5100770 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -2373,7 +2373,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 8988d54d3..854ba3b67 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -2334,7 +2334,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index f13e9ba6c..c23ddc822 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -2314,7 +2314,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index cf15edf99..710962742 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -2647,7 +2647,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 36909844e..71da3856a 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -2627,7 +2627,7 @@ CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set +CONFIG_LEDS_IS31FL32XX=m # CONFIG_LEDS_KTD2692 is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM355x is not set From dd36961ffc461d28f41181d14aebfd2e837cc6b6 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 6 Nov 2017 13:04:16 -0800 Subject: [PATCH 062/289] Patches for ThinkPad X1 Carbon Gen5 Touchpad (rhbz 1509461) --- kernel.spec | 7 ++++ ...---RMI4-can-also-use-SMBUS-version-3.patch | 42 +++++++++++++++++++ ...ovo-X1-Carbon-5-should-use-SMBUS-RMI.patch | 29 +++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch create mode 100644 v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch diff --git a/kernel.spec b/kernel.spec index dab1d1d7f..094bac33b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -708,6 +708,10 @@ Patch633: net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch # Included in 4.14, backport requested on kernel@ Patch634: selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch +# rhbz 1509461 +Patch635: v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch +Patch636: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch + # END OF PATCH DEFINITIONS %endif @@ -2262,6 +2266,9 @@ fi # # %changelog +* Mon Nov 06 2017 Laura Abbott +- Patches for ThinkPad X1 Carbon Gen5 Touchpad (rhbz 1509461) + * Thu Nov 02 2017 Jeremy Cline - 4.13.11-300 - Linux v4.13.11 - Fix CVE-2017-12193 (rhbz 1501215 1508717) diff --git a/v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch b/v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch new file mode 100644 index 000000000..5a8825793 --- /dev/null +++ b/v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch @@ -0,0 +1,42 @@ +From patchwork Sun Nov 5 17:09:50 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [v3,1/2] Input: synaptics-rmi4 - RMI4 can also use SMBUS version 3 +From: Yiannis Marangos +X-Patchwork-Id: 10042385 +Message-Id: <20171105170951.20261-2-yiannis.marangos@gmail.com> +To: linux-input@vger.kernel.org, dmitry.torokhov@gmail.com +Cc: Yiannis Marangos +Date: Sun, 5 Nov 2017 19:09:50 +0200 + +Some synaptics devices such as LEN0073 use SMBUS version 3. + +Signed-off-by: Yiannis Marangos +Acked-by: Benjamin Tissoires +--- + drivers/input/rmi4/rmi_smbus.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/input/rmi4/rmi_smbus.c b/drivers/input/rmi4/rmi_smbus.c +index 225025a0940c..b6ccf39c6a7b 100644 +--- a/drivers/input/rmi4/rmi_smbus.c ++++ b/drivers/input/rmi4/rmi_smbus.c +@@ -312,7 +312,7 @@ static int rmi_smb_probe(struct i2c_client *client, + rmi_smb->xport.dev = &client->dev; + rmi_smb->xport.pdata = *pdata; + rmi_smb->xport.pdata.irq = client->irq; +- rmi_smb->xport.proto_name = "smb2"; ++ rmi_smb->xport.proto_name = "smb"; + rmi_smb->xport.ops = &rmi_smb_ops; + + smbus_version = rmi_smb_get_version(rmi_smb); +@@ -322,7 +322,7 @@ static int rmi_smb_probe(struct i2c_client *client, + rmi_dbg(RMI_DEBUG_XPORT, &client->dev, "Smbus version is %d", + smbus_version); + +- if (smbus_version != 2) { ++ if (smbus_version != 2 && smbus_version != 3) { + dev_err(&client->dev, "Unrecognized SMB version %d\n", + smbus_version); + return -ENODEV; diff --git a/v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch b/v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch new file mode 100644 index 000000000..a37b15ec7 --- /dev/null +++ b/v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch @@ -0,0 +1,29 @@ +From patchwork Sun Nov 5 17:09:51 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [v3,2/2] Input: synaptics - Lenovo X1 Carbon 5 should use SMBUS/RMI +From: Yiannis Marangos +X-Patchwork-Id: 10042387 +Message-Id: <20171105170951.20261-3-yiannis.marangos@gmail.com> +To: linux-input@vger.kernel.org, dmitry.torokhov@gmail.com +Cc: Yiannis Marangos +Date: Sun, 5 Nov 2017 19:09:51 +0200 + +Signed-off-by: Yiannis Marangos +--- + drivers/input/mouse/synaptics.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c +index ee5466a374bf..b3c683a84d3f 100644 +--- a/drivers/input/mouse/synaptics.c ++++ b/drivers/input/mouse/synaptics.c +@@ -172,6 +172,7 @@ static const char * const smbus_pnp_ids[] = { + "LEN0048", /* X1 Carbon 3 */ + "LEN0046", /* X250 */ + "LEN004a", /* W541 */ ++ "LEN0073", /* X1 Carbon 5 */ + "LEN200f", /* T450s */ + NULL + }; From 3701134e1beeffaf4e7121647d09e175436d3800 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 6 Nov 2017 14:18:10 -0800 Subject: [PATCH 063/289] Fix for KVM regression on some machines (rhbz 1490803) --- ...support-for-CPUs-without-virtual-NMI.patch | 296 ++++++++++++++++++ kernel.spec | 4 + 2 files changed, 300 insertions(+) create mode 100644 1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch diff --git a/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch b/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch new file mode 100644 index 000000000..ca079af42 --- /dev/null +++ b/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch @@ -0,0 +1,296 @@ +From patchwork Mon Nov 6 12:31:12 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [1/2] kvm: vmx: Reinstate support for CPUs without virtual NMI +From: Paolo Bonzini +X-Patchwork-Id: 10043403 +Message-Id: <1509971473-74491-2-git-send-email-pbonzini@redhat.com> +To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org +Cc: rkrcmar@redhat.com, stable@vger.kernel.org +Date: Mon, 6 Nov 2017 13:31:12 +0100 + +This is more or less a revert of commit 2c82878b0cb3 ("KVM: VMX: require +virtual NMI support", 2017-03-27); it turns out that Core 2 Duo machines +only had virtual NMIs in some SKUs. + +The revert is not trivial because in the meanwhile there have been several +fixes to nested NMI injection. Therefore, the entire vNMI state is moved +to struct loaded_vmcs. + +Another change compared to before the patch is a simplification here: + + if (unlikely(!cpu_has_virtual_nmis() && vmx->soft_vnmi_blocked && + !(is_guest_mode(vcpu) && nested_cpu_has_virtual_nmis( + get_vmcs12(vcpu))))) { + +The final condition here is always true (because nested_cpu_has_virtual_nmis +is always false) and is removed. + +Fixes: 2c82878b0cb38fd516fd612c67852a6bbf282003 +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1490803 +Cc: stable@vger.kernel.org +Signed-off-by: Paolo Bonzini +--- + arch/x86/kvm/vmx.c | 150 +++++++++++++++++++++++++++++++++++++---------------- + 1 file changed, 106 insertions(+), 44 deletions(-) + +diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c +index e6c8ffa84968..d6b3b12ae1e2 100644 +--- a/arch/x86/kvm/vmx.c ++++ b/arch/x86/kvm/vmx.c +@@ -202,6 +202,10 @@ struct loaded_vmcs { + bool nmi_known_unmasked; + unsigned long vmcs_host_cr3; /* May not match real cr3 */ + unsigned long vmcs_host_cr4; /* May not match real cr4 */ ++ /* Support for vnmi-less CPUs */ ++ int soft_vnmi_blocked; ++ ktime_t entry_time; ++ s64 vnmi_blocked_time; + struct list_head loaded_vmcss_on_cpu_link; + }; + +@@ -1291,6 +1295,11 @@ static inline bool cpu_has_vmx_invpcid(void) + SECONDARY_EXEC_ENABLE_INVPCID; + } + ++static inline bool cpu_has_virtual_nmis(void) ++{ ++ return vmcs_config.pin_based_exec_ctrl & PIN_BASED_VIRTUAL_NMIS; ++} ++ + static inline bool cpu_has_vmx_wbinvd_exit(void) + { + return vmcs_config.cpu_based_2nd_exec_ctrl & +@@ -1348,11 +1357,6 @@ static inline bool nested_cpu_has2(struct vmcs12 *vmcs12, u32 bit) + (vmcs12->secondary_vm_exec_control & bit); + } + +-static inline bool nested_cpu_has_virtual_nmis(struct vmcs12 *vmcs12) +-{ +- return vmcs12->pin_based_vm_exec_control & PIN_BASED_VIRTUAL_NMIS; +-} +- + static inline bool nested_cpu_has_preemption_timer(struct vmcs12 *vmcs12) + { + return vmcs12->pin_based_vm_exec_control & +@@ -3712,9 +3716,9 @@ static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf) + &_vmexit_control) < 0) + return -EIO; + +- min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING | +- PIN_BASED_VIRTUAL_NMIS; +- opt = PIN_BASED_POSTED_INTR | PIN_BASED_VMX_PREEMPTION_TIMER; ++ min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING; ++ opt = PIN_BASED_VIRTUAL_NMIS | PIN_BASED_POSTED_INTR | ++ PIN_BASED_VMX_PREEMPTION_TIMER; + if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_PINBASED_CTLS, + &_pin_based_exec_control) < 0) + return -EIO; +@@ -5669,7 +5673,8 @@ static void enable_irq_window(struct kvm_vcpu *vcpu) + + static void enable_nmi_window(struct kvm_vcpu *vcpu) + { +- if (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) { ++ if (!cpu_has_virtual_nmis() || ++ vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) { + enable_irq_window(vcpu); + return; + } +@@ -5709,6 +5714,19 @@ static void vmx_inject_nmi(struct kvm_vcpu *vcpu) + { + struct vcpu_vmx *vmx = to_vmx(vcpu); + ++ if (!cpu_has_virtual_nmis()) { ++ /* ++ * Tracking the NMI-blocked state in software is built upon ++ * finding the next open IRQ window. This, in turn, depends on ++ * well-behaving guests: They have to keep IRQs disabled at ++ * least as long as the NMI handler runs. Otherwise we may ++ * cause NMI nesting, maybe breaking the guest. But as this is ++ * highly unlikely, we can live with the residual risk. ++ */ ++ vmx->loaded_vmcs->soft_vnmi_blocked = 1; ++ vmx->loaded_vmcs->vnmi_blocked_time = 0; ++ } ++ + ++vcpu->stat.nmi_injections; + vmx->loaded_vmcs->nmi_known_unmasked = false; + +@@ -5727,6 +5745,8 @@ static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu) + struct vcpu_vmx *vmx = to_vmx(vcpu); + bool masked; + ++ if (!cpu_has_virtual_nmis()) ++ return vmx->loaded_vmcs->soft_vnmi_blocked; + if (vmx->loaded_vmcs->nmi_known_unmasked) + return false; + masked = vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_NMI; +@@ -5738,13 +5758,20 @@ static void vmx_set_nmi_mask(struct kvm_vcpu *vcpu, bool masked) + { + struct vcpu_vmx *vmx = to_vmx(vcpu); + +- vmx->loaded_vmcs->nmi_known_unmasked = !masked; +- if (masked) +- vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, +- GUEST_INTR_STATE_NMI); +- else +- vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO, +- GUEST_INTR_STATE_NMI); ++ if (!cpu_has_virtual_nmis()) { ++ if (vmx->loaded_vmcs->soft_vnmi_blocked != masked) { ++ vmx->loaded_vmcs->soft_vnmi_blocked = masked; ++ vmx->loaded_vmcs->vnmi_blocked_time = 0; ++ } ++ } else { ++ vmx->loaded_vmcs->nmi_known_unmasked = !masked; ++ if (masked) ++ vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, ++ GUEST_INTR_STATE_NMI); ++ else ++ vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO, ++ GUEST_INTR_STATE_NMI); ++ } + } + + static int vmx_nmi_allowed(struct kvm_vcpu *vcpu) +@@ -5752,6 +5779,10 @@ static int vmx_nmi_allowed(struct kvm_vcpu *vcpu) + if (to_vmx(vcpu)->nested.nested_run_pending) + return 0; + ++ if (!cpu_has_virtual_nmis() && ++ to_vmx(vcpu)->loaded_vmcs->soft_vnmi_blocked) ++ return 0; ++ + return !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & + (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_STI + | GUEST_INTR_STATE_NMI)); +@@ -6479,6 +6510,7 @@ static int handle_ept_violation(struct kvm_vcpu *vcpu) + * AAK134, BY25. + */ + if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) && ++ cpu_has_virtual_nmis() && + (exit_qualification & INTR_INFO_UNBLOCK_NMI)) + vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, GUEST_INTR_STATE_NMI); + +@@ -6965,7 +6997,7 @@ static struct loaded_vmcs *nested_get_current_vmcs02(struct vcpu_vmx *vmx) + } + + /* Create a new VMCS */ +- item = kmalloc(sizeof(struct vmcs02_list), GFP_KERNEL); ++ item = kzalloc(sizeof(struct vmcs02_list), GFP_KERNEL); + if (!item) + return NULL; + item->vmcs02.vmcs = alloc_vmcs(); +@@ -7982,6 +8014,7 @@ static int handle_pml_full(struct kvm_vcpu *vcpu) + * "blocked by NMI" bit has to be set before next VM entry. + */ + if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) && ++ cpu_has_virtual_nmis() && + (exit_qualification & INTR_INFO_UNBLOCK_NMI)) + vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, + GUEST_INTR_STATE_NMI); +@@ -8826,6 +8859,25 @@ static int vmx_handle_exit(struct kvm_vcpu *vcpu) + return 0; + } + ++ if (unlikely(!cpu_has_virtual_nmis() && ++ vmx->loaded_vmcs->soft_vnmi_blocked)) { ++ if (vmx_interrupt_allowed(vcpu)) { ++ vmx->loaded_vmcs->soft_vnmi_blocked = 0; ++ } else if (vmx->loaded_vmcs->vnmi_blocked_time > 1000000000LL && ++ vcpu->arch.nmi_pending) { ++ /* ++ * This CPU don't support us in finding the end of an ++ * NMI-blocked window if the guest runs with IRQs ++ * disabled. So we pull the trigger after 1 s of ++ * futile waiting, but inform the user about this. ++ */ ++ printk(KERN_WARNING "%s: Breaking out of NMI-blocked " ++ "state on VCPU %d after 1 s timeout\n", ++ __func__, vcpu->vcpu_id); ++ vmx->loaded_vmcs->soft_vnmi_blocked = 0; ++ } ++ } ++ + if (exit_reason < kvm_vmx_max_exit_handlers + && kvm_vmx_exit_handlers[exit_reason]) + return kvm_vmx_exit_handlers[exit_reason](vcpu); +@@ -9108,33 +9160,38 @@ static void vmx_recover_nmi_blocking(struct vcpu_vmx *vmx) + + idtv_info_valid = vmx->idt_vectoring_info & VECTORING_INFO_VALID_MASK; + +- if (vmx->loaded_vmcs->nmi_known_unmasked) +- return; +- /* +- * Can't use vmx->exit_intr_info since we're not sure what +- * the exit reason is. +- */ +- exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO); +- unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0; +- vector = exit_intr_info & INTR_INFO_VECTOR_MASK; +- /* +- * SDM 3: 27.7.1.2 (September 2008) +- * Re-set bit "block by NMI" before VM entry if vmexit caused by +- * a guest IRET fault. +- * SDM 3: 23.2.2 (September 2008) +- * Bit 12 is undefined in any of the following cases: +- * If the VM exit sets the valid bit in the IDT-vectoring +- * information field. +- * If the VM exit is due to a double fault. +- */ +- if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi && +- vector != DF_VECTOR && !idtv_info_valid) +- vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, +- GUEST_INTR_STATE_NMI); +- else +- vmx->loaded_vmcs->nmi_known_unmasked = +- !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) +- & GUEST_INTR_STATE_NMI); ++ if (cpu_has_virtual_nmis()) { ++ if (vmx->loaded_vmcs->nmi_known_unmasked) ++ return; ++ /* ++ * Can't use vmx->exit_intr_info since we're not sure what ++ * the exit reason is. ++ */ ++ exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO); ++ unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0; ++ vector = exit_intr_info & INTR_INFO_VECTOR_MASK; ++ /* ++ * SDM 3: 27.7.1.2 (September 2008) ++ * Re-set bit "block by NMI" before VM entry if vmexit caused by ++ * a guest IRET fault. ++ * SDM 3: 23.2.2 (September 2008) ++ * Bit 12 is undefined in any of the following cases: ++ * If the VM exit sets the valid bit in the IDT-vectoring ++ * information field. ++ * If the VM exit is due to a double fault. ++ */ ++ if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi && ++ vector != DF_VECTOR && !idtv_info_valid) ++ vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, ++ GUEST_INTR_STATE_NMI); ++ else ++ vmx->loaded_vmcs->nmi_known_unmasked = ++ !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) ++ & GUEST_INTR_STATE_NMI); ++ } else if (unlikely(vmx->loaded_vmcs->soft_vnmi_blocked)) ++ vmx->loaded_vmcs->vnmi_blocked_time += ++ ktime_to_ns(ktime_sub(ktime_get(), ++ vmx->loaded_vmcs->entry_time)); + } + + static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu, +@@ -9251,6 +9308,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) + struct vcpu_vmx *vmx = to_vmx(vcpu); + unsigned long debugctlmsr, cr3, cr4; + ++ /* Record the guest's net vcpu time for enforced NMI injections. */ ++ if (unlikely(!cpu_has_virtual_nmis() && ++ vmx->loaded_vmcs->soft_vnmi_blocked)) ++ vmx->loaded_vmcs->entry_time = ktime_get(); ++ + /* Don't enter VMX if guest state is invalid, let the exit handler + start emulation until we arrive back to a valid state */ + if (vmx->emulation_required) diff --git a/kernel.spec b/kernel.spec index 094bac33b..fabbdf1f1 100644 --- a/kernel.spec +++ b/kernel.spec @@ -712,6 +712,9 @@ Patch634: selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch Patch635: v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch Patch636: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch +# rhbz 1490803 +Patch637: 1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch + # END OF PATCH DEFINITIONS %endif @@ -2268,6 +2271,7 @@ fi %changelog * Mon Nov 06 2017 Laura Abbott - Patches for ThinkPad X1 Carbon Gen5 Touchpad (rhbz 1509461) +- Fix for KVM regression on some machines (rhbz 1490803) * Thu Nov 02 2017 Jeremy Cline - 4.13.11-300 - Linux v4.13.11 From af239e2213f92452021ad55b5013103c77e6fe66 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 8 Nov 2017 08:11:32 -0600 Subject: [PATCH 064/289] Fix CVE-2017-16532 and CVE-2017-16538 --- ...usbtest-fix-NULL-pointer-dereference.patch | 41 +++++ CVE-2017-16538.patch | 166 ++++++++++++++++++ kernel.spec | 10 ++ 3 files changed, 217 insertions(+) create mode 100644 0001-usb-usbtest-fix-NULL-pointer-dereference.patch create mode 100644 CVE-2017-16538.patch diff --git a/0001-usb-usbtest-fix-NULL-pointer-dereference.patch b/0001-usb-usbtest-fix-NULL-pointer-dereference.patch new file mode 100644 index 000000000..acc03ec7d --- /dev/null +++ b/0001-usb-usbtest-fix-NULL-pointer-dereference.patch @@ -0,0 +1,41 @@ +From 7c80f9e4a588f1925b07134bb2e3689335f6c6d8 Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Fri, 29 Sep 2017 10:54:24 -0400 +Subject: [PATCH] usb: usbtest: fix NULL pointer dereference + +If the usbtest driver encounters a device with an IN bulk endpoint but +no OUT bulk endpoint, it will try to dereference a NULL pointer +(out->desc.bEndpointAddress). The problem can be solved by adding a +missing test. + +Signed-off-by: Alan Stern +Reported-by: Andrey Konovalov +Tested-by: Andrey Konovalov +Signed-off-by: Felipe Balbi +--- + drivers/usb/misc/usbtest.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c +index 113e38bfe0ef..b3fc602b2e24 100644 +--- a/drivers/usb/misc/usbtest.c ++++ b/drivers/usb/misc/usbtest.c +@@ -202,12 +202,13 @@ get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf) + return tmp; + } + +- if (in) { ++ if (in) + dev->in_pipe = usb_rcvbulkpipe(udev, + in->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); ++ if (out) + dev->out_pipe = usb_sndbulkpipe(udev, + out->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); +- } ++ + if (iso_in) { + dev->iso_in = &iso_in->desc; + dev->in_iso_pipe = usb_rcvisocpipe(udev, +-- +2.13.6 + diff --git a/CVE-2017-16538.patch b/CVE-2017-16538.patch new file mode 100644 index 000000000..e9cf4b054 --- /dev/null +++ b/CVE-2017-16538.patch @@ -0,0 +1,166 @@ +From patchwork Tue Sep 26 21:10:20 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [1/2] media: dvb-usb-v2: lmedm04: Improve logic checking of warm + start. +From: Malcolm Priestley +X-Patchwork-Id: 44566 +Message-Id: <20170926211021.11036-1-tvboxspy@gmail.com> +To: linux-media@vger.kernel.org +Cc: Andrey Konovalov , + Malcolm Priestley +Date: Tue, 26 Sep 2017 22:10:20 +0100 + +Warm start has no check as whether a genuine device has +connected and proceeds to next execution path. + +Check device should read 0x47 at offset of 2 on USB descriptor read +and it is the amount requested of 6 bytes. + +Fix for +kasan: CONFIG_KASAN_INLINE enabled +kasan: GPF could be caused by NULL-ptr deref or user memory access as + +Reported-by: Andrey Konovalov +Signed-off-by: Malcolm Priestley +--- + drivers/media/usb/dvb-usb-v2/lmedm04.c | 26 ++++++++++++++++++-------- + 1 file changed, 18 insertions(+), 8 deletions(-) + +diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c b/drivers/media/usb/dvb-usb-v2/lmedm04.c +index 5e320fa4a795..992f2011a6ba 100644 +--- a/drivers/media/usb/dvb-usb-v2/lmedm04.c ++++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c +@@ -494,18 +494,23 @@ static int lme2510_pid_filter(struct dvb_usb_adapter *adap, int index, u16 pid, + + static int lme2510_return_status(struct dvb_usb_device *d) + { +- int ret = 0; ++ int ret; + u8 *data; + +- data = kzalloc(10, GFP_KERNEL); ++ data = kzalloc(6, GFP_KERNEL); + if (!data) + return -ENOMEM; + +- ret |= usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), +- 0x06, 0x80, 0x0302, 0x00, data, 0x0006, 200); +- info("Firmware Status: %x (%x)", ret , data[2]); ++ ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), ++ 0x06, 0x80, 0x0302, 0x00, ++ data, 0x6, 200); ++ if (ret != 6) ++ ret = -EINVAL; ++ else ++ ret = data[2]; ++ ++ info("Firmware Status: %6ph", data); + +- ret = (ret < 0) ? -ENODEV : data[2]; + kfree(data); + return ret; + } +@@ -1189,6 +1194,7 @@ static int lme2510_get_adapter_count(struct dvb_usb_device *d) + static int lme2510_identify_state(struct dvb_usb_device *d, const char **name) + { + struct lme2510_state *st = d->priv; ++ int status; + + usb_reset_configuration(d->udev); + +@@ -1197,12 +1203,16 @@ static int lme2510_identify_state(struct dvb_usb_device *d, const char **name) + + st->dvb_usb_lme2510_firmware = dvb_usb_lme2510_firmware; + +- if (lme2510_return_status(d) == 0x44) { ++ status = lme2510_return_status(d); ++ if (status == 0x44) { + *name = lme_firmware_switch(d, 0); + return COLD; + } + +- return 0; ++ if (status != 0x47) ++ return -EINVAL; ++ ++ return WARM; + } + + static int lme2510_get_stream_config(struct dvb_frontend *fe, u8 *ts_type, +From patchwork Tue Sep 26 21:10:21 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [2/2] media: dvb-usb-v2: lmedm04: move ts2020 attach to + dm04_lme2510_tuner +From: Malcolm Priestley +X-Patchwork-Id: 44567 +Message-Id: <20170926211021.11036-2-tvboxspy@gmail.com> +To: linux-media@vger.kernel.org +Cc: Andrey Konovalov , + Malcolm Priestley +Date: Tue, 26 Sep 2017 22:10:21 +0100 + +When the tuner was split from m88rs2000 the attach function is in wrong +place. + +Move to dm04_lme2510_tuner to trap errors on failure and removing +a call to lme_coldreset. + +Prevents driver starting up without any tuner connected. + +Fixes to trap for ts2020 fail. +LME2510(C): FE Found M88RS2000 +ts2020: probe of 0-0060 failed with error -11 +... +LME2510(C): TUN Found RS2000 tuner +kasan: CONFIG_KASAN_INLINE enabled +kasan: GPF could be caused by NULL-ptr deref or user memory access +general protection fault: 0000 [#1] PREEMPT SMP KASAN + +Reported-by: Andrey Konovalov +Signed-off-by: Malcolm Priestley +Tested-by: Andrey Konovalov +--- + drivers/media/usb/dvb-usb-v2/lmedm04.c | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c b/drivers/media/usb/dvb-usb-v2/lmedm04.c +index 992f2011a6ba..be26c029546b 100644 +--- a/drivers/media/usb/dvb-usb-v2/lmedm04.c ++++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c +@@ -1076,8 +1076,6 @@ static int dm04_lme2510_frontend_attach(struct dvb_usb_adapter *adap) + + if (adap->fe[0]) { + info("FE Found M88RS2000"); +- dvb_attach(ts2020_attach, adap->fe[0], &ts2020_config, +- &d->i2c_adap); + st->i2c_tuner_gate_w = 5; + st->i2c_tuner_gate_r = 5; + st->i2c_tuner_addr = 0x60; +@@ -1143,17 +1141,18 @@ static int dm04_lme2510_tuner(struct dvb_usb_adapter *adap) + ret = st->tuner_config; + break; + case TUNER_RS2000: +- ret = st->tuner_config; ++ if (dvb_attach(ts2020_attach, adap->fe[0], ++ &ts2020_config, &d->i2c_adap)) ++ ret = st->tuner_config; + break; + default: + break; + } + +- if (ret) ++ if (ret) { + info("TUN Found %s tuner", tun_msg[ret]); +- else { +- info("TUN No tuner found --- resetting device"); +- lme_coldreset(d); ++ } else { ++ info("TUN No tuner found"); + return -ENODEV; + } + diff --git a/kernel.spec b/kernel.spec index fabbdf1f1..29d76125c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -715,6 +715,12 @@ Patch636: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch # rhbz 1490803 Patch637: 1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch +# CVE-2017-16532 rhbz 1510835 1510854 +Patch638: 0001-usb-usbtest-fix-NULL-pointer-dereference.patch + +# CVE-2017-16538 rhbz 1510826 1510854 +Patch639: CVE-2017-16538.patch + # END OF PATCH DEFINITIONS %endif @@ -2269,6 +2275,10 @@ fi # # %changelog +* Wed Nov 08 2017 Justin M. Forbes +- Fix CVE-2017-16532 (rhbz 1510835 1510854) +- Fix CVE-2017-16538 (rhbz 1510826 1510854) + * Mon Nov 06 2017 Laura Abbott - Patches for ThinkPad X1 Carbon Gen5 Touchpad (rhbz 1509461) - Fix for KVM regression on some machines (rhbz 1490803) From a4e91acabcab9b11139b2f4ad5e0654b2f0b1aff Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 8 Nov 2017 09:16:26 -0500 Subject: [PATCH 065/289] Linux v4.13.12 --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 29d76125c..f6b2d306e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 11 +%define stable_update 12 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -2275,6 +2275,9 @@ fi # # %changelog +* Wed Nov 08 2017 Jeremy Cline - 4.13.12-300 +- Linux v4.13.12 + * Wed Nov 08 2017 Justin M. Forbes - Fix CVE-2017-16532 (rhbz 1510835 1510854) - Fix CVE-2017-16538 (rhbz 1510826 1510854) diff --git a/sources b/sources index 5567d2f7e..4f9960f5e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.11.xz) = ad38845a4c05fcaace68563ffa005cf537d3564448b28750b2c872788cbc0c2495dbc9fdf98817d21aef41863614d8b707acdfb05d8f07845d921c909b5f1d22 +SHA512 (patch-4.13.12.xz) = 6ae0b61bcd62b2e90b8ef3e1030fa874aba95317ec559d6e72cbd83a21b3894c05210d2da137f7b4db063d7de52193260b2364ceb43538ab8cd1db78070efb34 From d071a1724fc9d8ebfcd1ffa0f6acca6ae84561c8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 12 Nov 2017 21:20:45 +0000 Subject: [PATCH 066/289] Add patch to fix issue with ULPI on QCom devices --- USB-ulpi-fix-bus-node-lookup.patch | 48 ++++++++++++++++++++++++++++++ kernel.spec | 3 ++ 2 files changed, 51 insertions(+) create mode 100644 USB-ulpi-fix-bus-node-lookup.patch diff --git a/USB-ulpi-fix-bus-node-lookup.patch b/USB-ulpi-fix-bus-node-lookup.patch new file mode 100644 index 000000000..835cf2ab6 --- /dev/null +++ b/USB-ulpi-fix-bus-node-lookup.patch @@ -0,0 +1,48 @@ +From patchwork Sat Nov 11 15:31:18 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: USB: ulpi: fix bus-node lookup +From: Johan Hovold +X-Patchwork-Id: 10054387 +Message-Id: <20171111153118.16038-1-johan@kernel.org> +To: Heikki Krogerus +Cc: Greg Kroah-Hartman , + linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, + linux-arm-msm@vger.kernel.org, Rob Clark , + Peter Robinson , Johan Hovold , + stable +Date: Sat, 11 Nov 2017 16:31:18 +0100 + +Fix bus-node lookup during registration, which ended up searching the whole +device tree depth-first starting at the parent (or grand parent) rather +than just matching on its children. + +To make things worse, the parent (or grand-parent) node could end being +prematurely freed as well. + +Fixes: ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT") +Reported-by: Peter Robinson +Reported-by: Stephen Boyd +Cc: stable # 4.10 +Signed-off-by: Johan Hovold +--- + drivers/usb/common/ulpi.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c +index 8b351444cc40..9a2ab6751a23 100644 +--- a/drivers/usb/common/ulpi.c ++++ b/drivers/usb/common/ulpi.c +@@ -180,9 +180,9 @@ static int ulpi_of_register(struct ulpi *ulpi) + /* Find a ulpi bus underneath the parent or the grandparent */ + parent = ulpi->dev.parent; + if (parent->of_node) +- np = of_find_node_by_name(parent->of_node, "ulpi"); ++ np = of_get_child_by_name(parent->of_node, "ulpi"); + else if (parent->parent && parent->parent->of_node) +- np = of_find_node_by_name(parent->parent->of_node, "ulpi"); ++ np = of_get_child_by_name(parent->parent->of_node, "ulpi"); + if (!np) + return 0; + diff --git a/kernel.spec b/kernel.spec index f6b2d306e..84c821306 100644 --- a/kernel.spec +++ b/kernel.spec @@ -620,6 +620,9 @@ Patch314: qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch # Hack until interconnect API lands upstream Patch315: qcom-clk-gpu-msm.patch +# https://patchwork.kernel.org/patch/10054387/ +Patch316: USB-ulpi-fix-bus-node-lookup.patch + # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ Patch321: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch From e4ae5c839dbca1cd1f5145058db24e9355cdb97e Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 15 Nov 2017 08:44:29 +0000 Subject: [PATCH 067/289] Add fix for vc4 interupts --- kernel.spec | 5 +++++ rpi-graphics-fix.patch | 46 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 rpi-graphics-fix.patch diff --git a/kernel.spec b/kernel.spec index 84c821306..a74278e2b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -635,6 +635,8 @@ Patch323: bcm2837-bluetooth-support.patch Patch324: bcm283x-vc4-fixes.patch +Patch325: rpi-graphics-fix.patch + # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20170912&id=723288836628bc1c0855f3bb7b64b1803e4b9e4a Patch330: arm-of-restrict-dma-configuration.patch @@ -2278,6 +2280,9 @@ fi # # %changelog +* Wed Nov 15 2017 Peter Robinson +- Add fix for vc4 interupts + * Wed Nov 08 2017 Jeremy Cline - 4.13.12-300 - Linux v4.13.12 diff --git a/rpi-graphics-fix.patch b/rpi-graphics-fix.patch new file mode 100644 index 000000000..89bfaf9a5 --- /dev/null +++ b/rpi-graphics-fix.patch @@ -0,0 +1,46 @@ +From 253696ccd613fbdaa5aba1de44c461a058e0a114 Mon Sep 17 00:00:00 2001 +From: Stefan Schake +Date: Fri, 10 Nov 2017 02:05:06 +0100 +Subject: drm/vc4: Account for interrupts in flight + +Synchronously disable the IRQ to make the following cancel_work_sync +invocation effective. + +An interrupt in flight could enqueue further overflow mem work. As we +free the binner BO immediately following vc4_irq_uninstall this caused +a NULL pointer dereference in the work callback vc4_overflow_mem_work. + +Link: https://github.com/anholt/linux/issues/114 +Signed-off-by: Stefan Schake +Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.") +Signed-off-by: Eric Anholt +Reviewed-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com + +diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c +index 7d7af3a..61b2e53 100644 +--- a/drivers/gpu/drm/vc4/vc4_irq.c ++++ b/drivers/gpu/drm/vc4/vc4_irq.c +@@ -208,6 +208,9 @@ vc4_irq_postinstall(struct drm_device *dev) + { + struct vc4_dev *vc4 = to_vc4_dev(dev); + ++ /* Undo the effects of a previous vc4_irq_uninstall. */ ++ enable_irq(dev->irq); ++ + /* Enable both the render done and out of memory interrupts. */ + V3D_WRITE(V3D_INTENA, V3D_DRIVER_IRQS); + +@@ -225,6 +228,9 @@ vc4_irq_uninstall(struct drm_device *dev) + /* Clear any pending interrupts we might have left. */ + V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS); + ++ /* Finish any interrupt handler still in flight. */ ++ disable_irq(dev->irq); ++ + cancel_work_sync(&vc4->overflow_mem_work); + } + +-- +cgit v0.10.2 + From be9699a40635eea04f77dfdb01d8d700eadcd7bc Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 15 Nov 2017 09:39:23 -0500 Subject: [PATCH 068/289] Linux v4.13.13 --- kernel.spec | 9 ++- ...-assoc-from-one-netns-to-another-one.patch | 62 +++++++++++++++++++ sources | 2 +- 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch diff --git a/kernel.spec b/kernel.spec index a74278e2b..f9a0fedd1 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 12 +%define stable_update 13 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -666,6 +666,9 @@ Patch337: arm64-aw64-devices.patch # CVE-2017-7477 rhbz 1445207 1445208 Patch502: CVE-2017-7477.patch +# CVE-2017-15115 rhbz 1513346 1513345 +Patch503: sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch + # 600 - Patches for improved Bay and Cherry Trail device support # Below patches are submitted upstream, awaiting review / merging Patch601: 0001-Input-gpio_keys-Allow-suppression-of-input-events-fo.patch @@ -2280,6 +2283,10 @@ fi # # %changelog +* Wed Nov 15 2017 Jeremy Cline - 4.13.13-300 +- Linux v4.13.13 +- Fix CVE-2017-15115 (rhbz 1513346 1513345) + * Wed Nov 15 2017 Peter Robinson - Add fix for vc4 interupts diff --git a/sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch b/sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch new file mode 100644 index 000000000..d44f6cc28 --- /dev/null +++ b/sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch @@ -0,0 +1,62 @@ +From df80cd9b28b9ebaa284a41df611dbf3a2d05ca74 Mon Sep 17 00:00:00 2001 +From: Xin Long +Date: Tue, 17 Oct 2017 23:26:10 +0800 +Subject: sctp: do not peel off an assoc from one netns to another one + +Now when peeling off an association to the sock in another netns, all +transports in this assoc are not to be rehashed and keep use the old +key in hashtable. + +As a transport uses sk->net as the hash key to insert into hashtable, +it would miss removing these transports from hashtable due to the new +netns when closing the sock and all transports are being freeed, then +later an use-after-free issue could be caused when looking up an asoc +and dereferencing those transports. + +This is a very old issue since very beginning, ChunYu found it with +syzkaller fuzz testing with this series: + + socket$inet6_sctp() + bind$inet6() + sendto$inet6() + unshare(0x40000000) + getsockopt$inet_sctp6_SCTP_GET_ASSOC_ID_LIST() + getsockopt$inet_sctp6_SCTP_SOCKOPT_PEELOFF() + +This patch is to block this call when peeling one assoc off from one +netns to another one, so that the netns of all transport would not +go out-sync with the key in hashtable. + +Note that this patch didn't fix it by rehashing transports, as it's +difficult to handle the situation when the tuple is already in use +in the new netns. Besides, no one would like to peel off one assoc +to another netns, considering ipaddrs, ifaces, etc. are usually +different. + +Reported-by: ChunYu Wang +Signed-off-by: Xin Long +Acked-by: Marcelo Ricardo Leitner +Acked-by: Neil Horman +Signed-off-by: David S. Miller +--- + net/sctp/socket.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/net/sctp/socket.c b/net/sctp/socket.c +index d4730ad..17841ab 100644 +--- a/net/sctp/socket.c ++++ b/net/sctp/socket.c +@@ -4906,6 +4906,10 @@ int sctp_do_peeloff(struct sock *sk, sctp_assoc_t id, struct socket **sockp) + struct socket *sock; + int err = 0; + ++ /* Do not peel off from one netns to another one. */ ++ if (!net_eq(current->nsproxy->net_ns, sock_net(sk))) ++ return -EINVAL; ++ + if (!asoc) + return -EINVAL; + +-- +cgit v1.1 + diff --git a/sources b/sources index 4f9960f5e..3d7cfe0c0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.12.xz) = 6ae0b61bcd62b2e90b8ef3e1030fa874aba95317ec559d6e72cbd83a21b3894c05210d2da137f7b4db063d7de52193260b2364ceb43538ab8cd1db78070efb34 +SHA512 (patch-4.13.13.xz) = 27966bedc01ef5e2d023ee0b91224ca5ab3c5019f431305a9daa62b3acddf80e4e4c201ec47ca06243aba7778810d5ecb95e9d115e15935153a4a5d061af3fac From 21888335aee30962f7b8acb81d1792dce2625f8d Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Mon, 20 Nov 2017 09:21:00 -0500 Subject: [PATCH 069/289] Linux v4.13.14 --- kernel.spec | 8 ++++---- sources | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel.spec b/kernel.spec index f9a0fedd1..770c6af18 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 13 +%define stable_update 14 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -723,9 +723,6 @@ Patch636: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch # rhbz 1490803 Patch637: 1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch -# CVE-2017-16532 rhbz 1510835 1510854 -Patch638: 0001-usb-usbtest-fix-NULL-pointer-dereference.patch - # CVE-2017-16538 rhbz 1510826 1510854 Patch639: CVE-2017-16538.patch @@ -2283,6 +2280,9 @@ fi # # %changelog +* Sun Nov 19 2017 Jeremy Cline - 4.13.14-300 +- Linux v4.13.14 + * Wed Nov 15 2017 Jeremy Cline - 4.13.13-300 - Linux v4.13.13 - Fix CVE-2017-15115 (rhbz 1513346 1513345) diff --git a/sources b/sources index 3d7cfe0c0..d7ff75a3a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.13.xz) = 27966bedc01ef5e2d023ee0b91224ca5ab3c5019f431305a9daa62b3acddf80e4e4c201ec47ca06243aba7778810d5ecb95e9d115e15935153a4a5d061af3fac +SHA512 (patch-4.13.14.xz) = 6cbcd43f1691be45f74a2d06ed55d59e4dc49c9a02d7573f3ca11130ad27a6f35f36d9da054e762ffbf9a5517735fba44bae601b60d477fcf5603a8867221c08 From cd8034901f994362b72d861612aec7fdd3c1ddca Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 20 Nov 2017 10:13:52 -0800 Subject: [PATCH 070/289] Enable driver for the Behringer BCD 2000 (rhbz 1514945) --- baseconfig/CONFIG_SND_BCD2000 | 2 +- kernel-aarch64-debug.config | 2 +- kernel-aarch64.config | 2 +- kernel-armv7hl-debug.config | 2 +- kernel-armv7hl-lpae-debug.config | 2 +- kernel-armv7hl-lpae.config | 2 +- kernel-armv7hl.config | 2 +- kernel-i686-PAE.config | 2 +- kernel-i686-PAEdebug.config | 2 +- kernel-i686-debug.config | 2 +- kernel-i686.config | 2 +- kernel-ppc64-debug.config | 2 +- kernel-ppc64.config | 2 +- kernel-ppc64le-debug.config | 2 +- kernel-ppc64le.config | 2 +- kernel-s390x-debug.config | 2 +- kernel-s390x.config | 2 +- kernel-x86_64-debug.config | 2 +- kernel-x86_64.config | 2 +- kernel.spec | 3 +++ 20 files changed, 22 insertions(+), 19 deletions(-) diff --git a/baseconfig/CONFIG_SND_BCD2000 b/baseconfig/CONFIG_SND_BCD2000 index 0a60c490b..b56c9162f 100644 --- a/baseconfig/CONFIG_SND_BCD2000 +++ b/baseconfig/CONFIG_SND_BCD2000 @@ -1 +1 @@ -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index fb2298280..398e4a2a7 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -5035,7 +5035,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 056a21e13..a55442073 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -5013,7 +5013,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 30e2a4ab0..a1de25f55 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -5417,7 +5417,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 0fd13fba4..2ceb6e17e 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -5095,7 +5095,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index 2b2754971..ed501e5a5 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -5073,7 +5073,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index a85ff06d3..9ae4f4dda 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -5395,7 +5395,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index c0d0cad8e..c41b1366c 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -4755,7 +4755,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 7623aa6cb..1020a8ce0 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -4776,7 +4776,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 1bfbfe612..8e739d7fc 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -4776,7 +4776,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-i686.config b/kernel-i686.config index 0d6400861..323dc8e1c 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -4755,7 +4755,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 0bb02e588..0c7047250 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -4590,7 +4590,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-ppc64.config b/kernel-ppc64.config index 44e9fcad9..1d697184b 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -4567,7 +4567,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 0425ae672..33fbd04f8 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -4520,7 +4520,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index 8e5100770..f668b8e62 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -4497,7 +4497,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 854ba3b67..dc9e7643a 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -4419,7 +4419,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index c23ddc822..058b61400 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -4396,7 +4396,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 710962742..d260a9646 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -4819,7 +4819,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 71da3856a..11c0799b6 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -4798,7 +4798,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -# CONFIG_SND_BCD2000 is not set +CONFIG_SND_BCD2000=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set diff --git a/kernel.spec b/kernel.spec index 770c6af18..a2e660da9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2280,6 +2280,9 @@ fi # # %changelog +* Mon Nov 20 2017 Laura Abbott +- Enable driver for the Behringer BCD 2000 (rhbz 1514945) + * Sun Nov 19 2017 Jeremy Cline - 4.13.14-300 - Linux v4.13.14 From 451f0ea702944dfec800b965c6936c0bdc63359b Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Tue, 21 Nov 2017 13:27:55 -0500 Subject: [PATCH 071/289] Linux v4.13.15 --- ...q-wmi-Add-DMI-check-before-binding-t.patch | 72 ----------- ...o-Fix-reporting-invalid-suggested-of.patch | 118 ------------------ kernel.spec | 11 +- sources | 2 +- 4 files changed, 5 insertions(+), 198 deletions(-) delete mode 100644 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch delete mode 100644 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch diff --git a/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch b/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch deleted file mode 100644 index 2242e2d44..000000000 --- a/0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 0e9df6a74f9573409e5a2fbe29c1389188280bfc Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 5 Oct 2017 16:02:33 +0200 -Subject: [PATCH] platform/x86: peaq-wmi: Add DMI check before binding to the - WMI interface - -It seems that the WMI GUID used by the PEAQ 2-in-1 WMI hotkeys is not -as unique as a GUID should be and is used on some other devices too. - -This is causing spurious key-press reports on these other devices. - -This commits adds a DMI check to the PEAQ 2-in-1 WMI hotkeys driver to -ensure that it is actually running on a PEAQ 2-in-1, fixing the -spurious key-presses on these other devices. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1497861 -BugLink: https://bugzilla.suse.com/attachment.cgi?id=743182 -Cc: stable@vger.kernel.org -Signed-off-by: Hans de Goede ---- - drivers/platform/x86/peaq-wmi.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/drivers/platform/x86/peaq-wmi.c b/drivers/platform/x86/peaq-wmi.c -index bc98ef95514a..67fa3fa32011 100644 ---- a/drivers/platform/x86/peaq-wmi.c -+++ b/drivers/platform/x86/peaq-wmi.c -@@ -8,6 +8,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -64,8 +65,23 @@ static void peaq_wmi_poll(struct input_polled_dev *dev) - } - } - -+/* Some other devices (Shuttle XS35) use the same WMI GUID for other purposes */ -+static const struct dmi_system_id peaq_dmi_table[] = { -+ { -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"), -+ }, -+ }, -+ {} -+}; -+ - static int __init peaq_wmi_init(void) - { -+ /* WMI GUID is not unique, also check for a DMI match */ -+ if (!dmi_check_system(peaq_dmi_table)) -+ return -ENODEV; -+ - if (!wmi_has_guid(PEAQ_DOLBY_BUTTON_GUID)) - return -ENODEV; - -@@ -86,6 +101,9 @@ static int __init peaq_wmi_init(void) - - static void __exit peaq_wmi_exit(void) - { -+ if (!dmi_check_system(peaq_dmi_table)) -+ return; -+ - if (!wmi_has_guid(PEAQ_DOLBY_BUTTON_GUID)) - return; - --- -2.14.2 - diff --git a/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch b/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch deleted file mode 100644 index 695fcda36..000000000 --- a/0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 3b40f521aa2f42862203497a94ae77536f41ade2 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 12 Oct 2017 19:44:48 +0200 -Subject: [PATCH] staging: vboxvideo: Fix reporting invalid - suggested-offset-properties - -The x and y hints receives from the host are unsigned 32 bit integers and -they get set to -1 (0xffffffff) when invalid. Before this commit the -vboxvideo driver was storing them in an u16 causing the -1 to be truncated -to 65535 which, once reported to userspace, was breaking gnome 3.26+ -in Wayland mode. - -This commit stores the host values in 32 bit variables, removing the -truncation and checks for -1, replacing it with 0 as -1 is not a valid -suggested-offset-property value. Likewise the properties are now -initialized to 0 instead of -1, since -1 is not a valid value. -This fixes gnome 3.26+ in Wayland mode not working with the vboxvideo -driver. - -Reported-by: Gianfranco Costamagna -Cc: stable@vger.kernel.org -Cc: Michael Thayer -Signed-off-by: Hans de Goede ---- - drivers/staging/vboxvideo/vbox_drv.h | 8 ++++---- - drivers/staging/vboxvideo/vbox_irq.c | 4 ++-- - drivers/staging/vboxvideo/vbox_mode.c | 26 ++++++++++++++++++-------- - 3 files changed, 24 insertions(+), 14 deletions(-) - -diff --git a/drivers/staging/vboxvideo/vbox_drv.h b/drivers/staging/vboxvideo/vbox_drv.h -index 4b9302703b36..eeac4f0cb2c6 100644 ---- a/drivers/staging/vboxvideo/vbox_drv.h -+++ b/drivers/staging/vboxvideo/vbox_drv.h -@@ -137,8 +137,8 @@ struct vbox_connector { - char name[32]; - struct vbox_crtc *vbox_crtc; - struct { -- u16 width; -- u16 height; -+ u32 width; -+ u32 height; - bool disconnected; - } mode_hint; - }; -@@ -150,8 +150,8 @@ struct vbox_crtc { - unsigned int crtc_id; - u32 fb_offset; - bool cursor_enabled; -- u16 x_hint; -- u16 y_hint; -+ u32 x_hint; -+ u32 y_hint; - }; - - struct vbox_encoder { -diff --git a/drivers/staging/vboxvideo/vbox_irq.c b/drivers/staging/vboxvideo/vbox_irq.c -index 3ca8bec62ac4..74abdf02d9fd 100644 ---- a/drivers/staging/vboxvideo/vbox_irq.c -+++ b/drivers/staging/vboxvideo/vbox_irq.c -@@ -150,8 +150,8 @@ static void vbox_update_mode_hints(struct vbox_private *vbox) - - disconnected = !(hints->enabled); - crtc_id = vbox_conn->vbox_crtc->crtc_id; -- vbox_conn->mode_hint.width = hints->cx & 0x8fff; -- vbox_conn->mode_hint.height = hints->cy & 0x8fff; -+ vbox_conn->mode_hint.width = hints->cx; -+ vbox_conn->mode_hint.height = hints->cy; - vbox_conn->vbox_crtc->x_hint = hints->dx; - vbox_conn->vbox_crtc->y_hint = hints->dy; - vbox_conn->mode_hint.disconnected = disconnected; -diff --git a/drivers/staging/vboxvideo/vbox_mode.c b/drivers/staging/vboxvideo/vbox_mode.c -index 257a77830410..6f08dc966719 100644 ---- a/drivers/staging/vboxvideo/vbox_mode.c -+++ b/drivers/staging/vboxvideo/vbox_mode.c -@@ -553,12 +553,22 @@ static int vbox_get_modes(struct drm_connector *connector) - ++num_modes; - } - vbox_set_edid(connector, preferred_width, preferred_height); -- drm_object_property_set_value( -- &connector->base, vbox->dev->mode_config.suggested_x_property, -- vbox_connector->vbox_crtc->x_hint); -- drm_object_property_set_value( -- &connector->base, vbox->dev->mode_config.suggested_y_property, -- vbox_connector->vbox_crtc->y_hint); -+ -+ if (vbox_connector->vbox_crtc->x_hint != -1) -+ drm_object_property_set_value(&connector->base, -+ vbox->dev->mode_config.suggested_x_property, -+ vbox_connector->vbox_crtc->x_hint); -+ else -+ drm_object_property_set_value(&connector->base, -+ vbox->dev->mode_config.suggested_x_property, 0); -+ -+ if (vbox_connector->vbox_crtc->y_hint != -1) -+ drm_object_property_set_value(&connector->base, -+ vbox->dev->mode_config.suggested_y_property, -+ vbox_connector->vbox_crtc->y_hint); -+ else -+ drm_object_property_set_value(&connector->base, -+ vbox->dev->mode_config.suggested_y_property, 0); - - return num_modes; - } -@@ -640,9 +650,9 @@ static int vbox_connector_init(struct drm_device *dev, - - drm_mode_create_suggested_offset_properties(dev); - drm_object_attach_property(&connector->base, -- dev->mode_config.suggested_x_property, -1); -+ dev->mode_config.suggested_x_property, 0); - drm_object_attach_property(&connector->base, -- dev->mode_config.suggested_y_property, -1); -+ dev->mode_config.suggested_y_property, 0); - drm_connector_register(connector); - - drm_mode_connector_attach_encoder(connector, encoder); --- -2.14.2 - diff --git a/kernel.spec b/kernel.spec index a2e660da9..af481eb08 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 14 +%define stable_update 15 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -698,18 +698,12 @@ Patch626: 1-3-net-set-tb--fast_sk_family.patch Patch627: 2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch Patch628: 3-3-inet-fix-improper-empty-comparison.patch -# rhbz 1497861 -Patch629: 0001-platform-x86-peaq-wmi-Add-DMI-check-before-binding-t.patch - # rhbz 1482648 Patch630: Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch # Headed upstream Patch631: drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch -# fix gnome 3.26+ not working under VirtualBox, submitted upstream, Cc: Stable -Patch632: 0001-staging-vboxvideo-Fix-reporting-invalid-suggested-of.patch - # http://patchwork.ozlabs.org/patch/831938/ Patch633: net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch @@ -2280,6 +2274,9 @@ fi # # %changelog +* Tue Nov 21 2017 Jeremy Cline - 4.13.15-300 +- Linux v4.13.15 + * Mon Nov 20 2017 Laura Abbott - Enable driver for the Behringer BCD 2000 (rhbz 1514945) diff --git a/sources b/sources index d7ff75a3a..b2d20930c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.14.xz) = 6cbcd43f1691be45f74a2d06ed55d59e4dc49c9a02d7573f3ca11130ad27a6f35f36d9da054e762ffbf9a5517735fba44bae601b60d477fcf5603a8867221c08 +SHA512 (patch-4.13.15.xz) = 54e1d3b526984efe90a5c759b35ac849ac65525c977b3982ef32b0fbb83e73f1fca92d73c3ffb1f23643d9f72a3083eeb4edb54768b105138722434811f622c4 From f65562a4d55f609622cc1e736175ee48dd70bb77 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 21 Nov 2017 15:41:15 -0600 Subject: [PATCH 072/289] Fix qxl cursor issues (rhbz 1507931) --- kernel.spec | 6 + qxl_cursor_fix.patch | 565 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 571 insertions(+) create mode 100644 qxl_cursor_fix.patch diff --git a/kernel.spec b/kernel.spec index af481eb08..7436eb0f9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -720,6 +720,9 @@ Patch637: 1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch # CVE-2017-16538 rhbz 1510826 1510854 Patch639: CVE-2017-16538.patch +# rhbz 1507931 +Patch640: qxl_cursor_fix.patch + # END OF PATCH DEFINITIONS %endif @@ -2274,6 +2277,9 @@ fi # # %changelog +* Tue Nov 21 2017 Justin M. Forbes +- Fix cursor issues with QXL (rhbz 1507931) + * Tue Nov 21 2017 Jeremy Cline - 4.13.15-300 - Linux v4.13.15 diff --git a/qxl_cursor_fix.patch b/qxl_cursor_fix.patch new file mode 100644 index 000000000..8d59cb48b --- /dev/null +++ b/qxl_cursor_fix.patch @@ -0,0 +1,565 @@ +From fda212272d75dd46a53bdeba9466c6f7db7ee3fa Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Fri, 17 Nov 2017 15:08:05 -0500 +Subject: [PATCH 1/2] drm/qxl: unref cursor bo when finished with it + +qxl_cursor_atomic_update allocs a bo for the cursor that +it never frees up at the end of the function. + +This commit fixes that. + +Signed-off-by: Ray Strode +--- + drivers/gpu/drm/qxl/qxl_display.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c +index da6648e75374..dab9f860626f 100644 +--- a/drivers/gpu/drm/qxl/qxl_display.c ++++ b/drivers/gpu/drm/qxl/qxl_display.c +@@ -551,61 +551,61 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane, + struct qxl_device *qdev = plane->dev->dev_private; + + if (old_state->fb) { + struct qxl_framebuffer *qfb = + to_qxl_framebuffer(old_state->fb); + struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); + + if (bo->is_primary) { + qxl_io_destroy_primary(qdev); + bo->is_primary = false; + } + } + } + + int qxl_plane_atomic_check(struct drm_plane *plane, + struct drm_plane_state *state) + { + return 0; + } + + static void qxl_cursor_atomic_update(struct drm_plane *plane, + struct drm_plane_state *old_state) + { + struct drm_device *dev = plane->dev; + struct qxl_device *qdev = dev->dev_private; + struct drm_framebuffer *fb = plane->state->fb; + struct qxl_release *release; + struct qxl_cursor_cmd *cmd; + struct qxl_cursor *cursor; + struct drm_gem_object *obj; +- struct qxl_bo *cursor_bo, *user_bo = NULL; ++ struct qxl_bo *cursor_bo = NULL, *user_bo = NULL; + int ret; + void *user_ptr; + int size = 64*64*4; + + ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), + QXL_RELEASE_CURSOR_CMD, + &release, NULL); + if (ret) + return; + + if (fb != old_state->fb) { + obj = to_qxl_framebuffer(fb)->obj; + user_bo = gem_to_qxl_bo(obj); + + /* pinning is done in the prepare/cleanup framevbuffer */ + ret = qxl_bo_kmap(user_bo, &user_ptr); + if (ret) + goto out_free_release; + + ret = qxl_alloc_bo_reserved(qdev, release, + sizeof(struct qxl_cursor) + size, + &cursor_bo); + if (ret) + goto out_kunmap; + + ret = qxl_release_reserve_list(release, true); + if (ret) + goto out_free_bo; + + ret = qxl_bo_kmap(cursor_bo, (void **)&cursor); +@@ -621,60 +621,62 @@ static void qxl_cursor_atomic_update(struct drm_plane *plane, + cursor->data_size = size; + cursor->chunk.next_chunk = 0; + cursor->chunk.prev_chunk = 0; + cursor->chunk.data_size = size; + memcpy(cursor->chunk.data, user_ptr, size); + qxl_bo_kunmap(cursor_bo); + qxl_bo_kunmap(user_bo); + + cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); + cmd->u.set.visible = 1; + cmd->u.set.shape = qxl_bo_physical_address(qdev, + cursor_bo, 0); + cmd->type = QXL_CURSOR_SET; + } else { + + ret = qxl_release_reserve_list(release, true); + if (ret) + goto out_free_release; + + cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); + cmd->type = QXL_CURSOR_MOVE; + } + + cmd->u.position.x = plane->state->crtc_x + fb->hot_x; + cmd->u.position.y = plane->state->crtc_y + fb->hot_y; + + qxl_release_unmap(qdev, release, &cmd->release_info); + qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false); + qxl_release_fence_buffer_objects(release); + ++ qxl_bo_unref (&cursor_bo); ++ + return; + + out_backoff: + qxl_release_backoff_reserve_list(release); + out_free_bo: + qxl_bo_unref(&cursor_bo); + out_kunmap: + qxl_bo_kunmap(user_bo); + out_free_release: + qxl_release_free(qdev, release); + return; + + } + + void qxl_cursor_atomic_disable(struct drm_plane *plane, + struct drm_plane_state *old_state) + { + struct qxl_device *qdev = plane->dev->dev_private; + struct qxl_release *release; + struct qxl_cursor_cmd *cmd; + int ret; + + ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), + QXL_RELEASE_CURSOR_CMD, + &release, NULL); + if (ret) + return; + + ret = qxl_release_reserve_list(release, true); + if (ret) { +-- +2.14.3 + + +From c779c917be6cd38a0c39ebb10f75f223efc5ffef Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Fri, 17 Nov 2017 14:49:46 -0500 +Subject: [PATCH 2/2] drm/qxl: reapply cursor after resetting primary + +QXL associates mouse state with its primary plane. + +Destroying a primary plane and putting a new one +in place has the side effect of destroying the cursor +as well. + +This commit changes the driver to reapply the cursor +any time a new primary is created. It achieves this +by keeping a reference to the cursor bo on the qxl_crtc +struct. + +This fix is very similar to commit 4532b241a4b which +got implicitly reverted as part of implementing the +atomic modeset feature. + +Signed-off-by: Ray Strode + +https://bugzilla.redhat.com/show_bug.cgi?id=1512097 +--- + drivers/gpu/drm/qxl/qxl_display.c | 59 +++++++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/qxl/qxl_drv.h | 2 ++ + 2 files changed, 61 insertions(+) + +diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c +index dab9f860626f..ef5c3a83130f 100644 +--- a/drivers/gpu/drm/qxl/qxl_display.c ++++ b/drivers/gpu/drm/qxl/qxl_display.c +@@ -262,60 +262,61 @@ static int qxl_add_common_modes(struct drm_connector *connector, + mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h, + 60, false, false, false); + if (common_modes[i].w == pwidth && common_modes[i].h == pheight) + mode->type |= DRM_MODE_TYPE_PREFERRED; + drm_mode_probed_add(connector, mode); + } + return i - 1; + } + + static void qxl_crtc_atomic_flush(struct drm_crtc *crtc, + struct drm_crtc_state *old_crtc_state) + { + struct drm_device *dev = crtc->dev; + struct drm_pending_vblank_event *event; + unsigned long flags; + + if (crtc->state && crtc->state->event) { + event = crtc->state->event; + crtc->state->event = NULL; + + spin_lock_irqsave(&dev->event_lock, flags); + drm_crtc_send_vblank_event(crtc, event); + spin_unlock_irqrestore(&dev->event_lock, flags); + } + } + + static void qxl_crtc_destroy(struct drm_crtc *crtc) + { + struct qxl_crtc *qxl_crtc = to_qxl_crtc(crtc); + ++ qxl_bo_unref(&qxl_crtc->cursor_bo); + drm_crtc_cleanup(crtc); + kfree(qxl_crtc); + } + + static const struct drm_crtc_funcs qxl_crtc_funcs = { + .set_config = drm_atomic_helper_set_config, + .destroy = qxl_crtc_destroy, + .page_flip = drm_atomic_helper_page_flip, + .reset = drm_atomic_helper_crtc_reset, + .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, + .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, + }; + + void qxl_user_framebuffer_destroy(struct drm_framebuffer *fb) + { + struct qxl_framebuffer *qxl_fb = to_qxl_framebuffer(fb); + struct qxl_bo *bo = gem_to_qxl_bo(qxl_fb->obj); + + WARN_ON(bo->shadow); + drm_gem_object_unreference_unlocked(qxl_fb->obj); + drm_framebuffer_cleanup(fb); + kfree(qxl_fb); + } + + static int qxl_framebuffer_surface_dirty(struct drm_framebuffer *fb, + struct drm_file *file_priv, + unsigned flags, unsigned color, + struct drm_clip_rect *clips, + unsigned num_clips) + { +@@ -471,193 +472,251 @@ static void qxl_crtc_disable(struct drm_crtc *crtc) + static const struct drm_crtc_helper_funcs qxl_crtc_helper_funcs = { + .dpms = qxl_crtc_dpms, + .disable = qxl_crtc_disable, + .mode_fixup = qxl_crtc_mode_fixup, + .mode_set_nofb = qxl_mode_set_nofb, + .commit = qxl_crtc_commit, + .atomic_flush = qxl_crtc_atomic_flush, + }; + + int qxl_primary_atomic_check(struct drm_plane *plane, + struct drm_plane_state *state) + { + struct qxl_device *qdev = plane->dev->dev_private; + struct qxl_framebuffer *qfb; + struct qxl_bo *bo; + + if (!state->crtc || !state->fb) + return 0; + + qfb = to_qxl_framebuffer(state->fb); + bo = gem_to_qxl_bo(qfb->obj); + + if (bo->surf.stride * bo->surf.height > qdev->vram_size) { + DRM_ERROR("Mode doesn't fit in vram size (vgamem)"); + return -EINVAL; + } + + return 0; + } + ++static int qxl_primary_apply_cursor(struct drm_plane *plane) ++{ ++ struct drm_device *dev = plane->dev; ++ struct qxl_device *qdev = dev->dev_private; ++ struct drm_framebuffer *fb = plane->state->fb; ++ struct qxl_crtc *qcrtc = to_qxl_crtc(plane->state->crtc); ++ struct qxl_cursor_cmd *cmd; ++ struct qxl_release *release; ++ int ret = 0; ++ ++ if (!qcrtc->cursor_bo) ++ return 0; ++ ++ ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), ++ QXL_RELEASE_CURSOR_CMD, ++ &release, NULL); ++ if (ret) ++ return ret; ++ ++ ret = qxl_release_list_add(release, qcrtc->cursor_bo); ++ if (ret) ++ goto out_free_release; ++ ++ ret = qxl_release_reserve_list(release, false); ++ if (ret) ++ goto out_free_release; ++ ++ cmd = (struct qxl_cursor_cmd *)qxl_release_map(qdev, release); ++ cmd->type = QXL_CURSOR_SET; ++ cmd->u.set.position.x = plane->state->crtc_x + fb->hot_x; ++ cmd->u.set.position.y = plane->state->crtc_y + fb->hot_y; ++ ++ cmd->u.set.shape = qxl_bo_physical_address(qdev, qcrtc->cursor_bo, 0); ++ ++ cmd->u.set.visible = 1; ++ qxl_release_unmap(qdev, release, &cmd->release_info); ++ ++ qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false); ++ qxl_release_fence_buffer_objects(release); ++ ++ return ret; ++ ++out_free_release: ++ qxl_release_free(qdev, release); ++ return ret; ++} ++ + static void qxl_primary_atomic_update(struct drm_plane *plane, + struct drm_plane_state *old_state) + { + struct qxl_device *qdev = plane->dev->dev_private; + struct qxl_framebuffer *qfb = + to_qxl_framebuffer(plane->state->fb); + struct qxl_framebuffer *qfb_old; + struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); + struct qxl_bo *bo_old; + struct drm_clip_rect norect = { + .x1 = 0, + .y1 = 0, + .x2 = qfb->base.width, + .y2 = qfb->base.height + }; ++ int ret; + bool same_shadow = false; + + if (old_state->fb) { + qfb_old = to_qxl_framebuffer(old_state->fb); + bo_old = gem_to_qxl_bo(qfb_old->obj); + } else { + bo_old = NULL; + } + + if (bo == bo_old) + return; + + if (bo_old && bo_old->shadow && bo->shadow && + bo_old->shadow == bo->shadow) { + same_shadow = true; + } + + if (bo_old && bo_old->is_primary) { + if (!same_shadow) + qxl_io_destroy_primary(qdev); + bo_old->is_primary = false; ++ ++ ret = qxl_primary_apply_cursor(plane); ++ if (ret) { ++ DRM_ERROR("could not set cursor after creating primary"); ++ } + } + + if (!bo->is_primary) { + if (!same_shadow) + qxl_io_create_primary(qdev, 0, bo); + bo->is_primary = true; + } + + qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); + } + + static void qxl_primary_atomic_disable(struct drm_plane *plane, + struct drm_plane_state *old_state) + { + struct qxl_device *qdev = plane->dev->dev_private; + + if (old_state->fb) { + struct qxl_framebuffer *qfb = + to_qxl_framebuffer(old_state->fb); + struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); + + if (bo->is_primary) { + qxl_io_destroy_primary(qdev); + bo->is_primary = false; + } + } + } + + int qxl_plane_atomic_check(struct drm_plane *plane, + struct drm_plane_state *state) + { + return 0; + } + + static void qxl_cursor_atomic_update(struct drm_plane *plane, + struct drm_plane_state *old_state) + { + struct drm_device *dev = plane->dev; + struct qxl_device *qdev = dev->dev_private; + struct drm_framebuffer *fb = plane->state->fb; ++ struct qxl_crtc *qcrtc = to_qxl_crtc(plane->state->crtc); + struct qxl_release *release; + struct qxl_cursor_cmd *cmd; + struct qxl_cursor *cursor; + struct drm_gem_object *obj; + struct qxl_bo *cursor_bo = NULL, *user_bo = NULL; + int ret; + void *user_ptr; + int size = 64*64*4; + + ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), + QXL_RELEASE_CURSOR_CMD, + &release, NULL); + if (ret) + return; + + if (fb != old_state->fb) { + obj = to_qxl_framebuffer(fb)->obj; + user_bo = gem_to_qxl_bo(obj); + + /* pinning is done in the prepare/cleanup framevbuffer */ + ret = qxl_bo_kmap(user_bo, &user_ptr); + if (ret) + goto out_free_release; + + ret = qxl_alloc_bo_reserved(qdev, release, + sizeof(struct qxl_cursor) + size, + &cursor_bo); + if (ret) + goto out_kunmap; + + ret = qxl_release_reserve_list(release, true); + if (ret) + goto out_free_bo; + + ret = qxl_bo_kmap(cursor_bo, (void **)&cursor); + if (ret) + goto out_backoff; + + cursor->header.unique = 0; + cursor->header.type = SPICE_CURSOR_TYPE_ALPHA; + cursor->header.width = 64; + cursor->header.height = 64; + cursor->header.hot_spot_x = fb->hot_x; + cursor->header.hot_spot_y = fb->hot_y; + cursor->data_size = size; + cursor->chunk.next_chunk = 0; + cursor->chunk.prev_chunk = 0; + cursor->chunk.data_size = size; + memcpy(cursor->chunk.data, user_ptr, size); + qxl_bo_kunmap(cursor_bo); + qxl_bo_kunmap(user_bo); + + cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); + cmd->u.set.visible = 1; + cmd->u.set.shape = qxl_bo_physical_address(qdev, + cursor_bo, 0); + cmd->type = QXL_CURSOR_SET; ++ ++ qxl_bo_unref (&qcrtc->cursor_bo); ++ qcrtc->cursor_bo = cursor_bo; ++ cursor_bo = NULL; + } else { + + ret = qxl_release_reserve_list(release, true); + if (ret) + goto out_free_release; + + cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); + cmd->type = QXL_CURSOR_MOVE; + } + + cmd->u.position.x = plane->state->crtc_x + fb->hot_x; + cmd->u.position.y = plane->state->crtc_y + fb->hot_y; + + qxl_release_unmap(qdev, release, &cmd->release_info); + qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false); + qxl_release_fence_buffer_objects(release); + + qxl_bo_unref (&cursor_bo); + + return; + + out_backoff: + qxl_release_backoff_reserve_list(release); + out_free_bo: + qxl_bo_unref(&cursor_bo); + out_kunmap: + qxl_bo_kunmap(user_bo); + out_free_release: + qxl_release_free(qdev, release); + return; +diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h +index b5e9dc6eebac..d3e2373ef821 100644 +--- a/drivers/gpu/drm/qxl/qxl_drv.h ++++ b/drivers/gpu/drm/qxl/qxl_drv.h +@@ -107,60 +107,62 @@ struct qxl_bo { + struct ttm_bo_kmap_obj kmap; + unsigned pin_count; + void *kptr; + int type; + + /* Constant after initialization */ + struct drm_gem_object gem_base; + bool is_primary; /* is this now a primary surface */ + bool is_dumb; + struct qxl_bo *shadow; + bool hw_surf_alloc; + struct qxl_surface surf; + uint32_t surface_id; + struct qxl_release *surf_create; + }; + #define gem_to_qxl_bo(gobj) container_of((gobj), struct qxl_bo, gem_base) + #define to_qxl_bo(tobj) container_of((tobj), struct qxl_bo, tbo) + + struct qxl_gem { + struct mutex mutex; + struct list_head objects; + }; + + struct qxl_bo_list { + struct ttm_validate_buffer tv; + }; + + struct qxl_crtc { + struct drm_crtc base; + int index; ++ ++ struct qxl_bo *cursor_bo; + }; + + struct qxl_output { + int index; + struct drm_connector base; + struct drm_encoder enc; + }; + + struct qxl_framebuffer { + struct drm_framebuffer base; + struct drm_gem_object *obj; + }; + + #define to_qxl_crtc(x) container_of(x, struct qxl_crtc, base) + #define drm_connector_to_qxl_output(x) container_of(x, struct qxl_output, base) + #define drm_encoder_to_qxl_output(x) container_of(x, struct qxl_output, enc) + #define to_qxl_framebuffer(x) container_of(x, struct qxl_framebuffer, base) + + struct qxl_mman { + struct ttm_bo_global_ref bo_global_ref; + struct drm_global_reference mem_global_ref; + bool mem_global_referenced; + struct ttm_bo_device bdev; + }; + + struct qxl_mode_info { + bool mode_config_initialized; + + /* pointer to fbdev info structure */ + struct qxl_fbdev *qfbdev; +-- +2.14.3 + From 3f119951a08c8c0a49f68ba2e465c0dcc9f6b4b3 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Mon, 27 Nov 2017 10:46:47 -0500 Subject: [PATCH 073/289] Linux v4.13.16 --- kernel.spec | 13 ++- ...n-error-handling-path-in-hdpvr_probe.patch | 106 ++++++++++++++++++ ...-assoc-from-one-netns-to-another-one.patch | 62 ---------- sources | 2 +- 4 files changed, 117 insertions(+), 66 deletions(-) create mode 100644 media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch delete mode 100644 sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch diff --git a/kernel.spec b/kernel.spec index 7436eb0f9..4e075e524 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 15 +%define stable_update 16 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -666,8 +666,8 @@ Patch337: arm64-aw64-devices.patch # CVE-2017-7477 rhbz 1445207 1445208 Patch502: CVE-2017-7477.patch -# CVE-2017-15115 rhbz 1513346 1513345 -Patch503: sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch +# CVE-2017-16644 rhbz 1516273 1516274 +Patch503: media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch # 600 - Patches for improved Bay and Cherry Trail device support # Below patches are submitted upstream, awaiting review / merging @@ -2277,6 +2277,13 @@ fi # # %changelog +* Mon Nov 27 2017 Jeremy Cline - 4.13.16-300 +- Linux v4.13.16 +- Fix CVE-2017-16649 (rhbz 1516267 1516274) +- Fix CVE-2017-16650 (rhbz 1516265 1516274) +- Fix CVE-2017-16644 (rhbz 1516273 1516274) +- Fix CVE-2017-16647 (rhbz 1516270 1516274) + * Tue Nov 21 2017 Justin M. Forbes - Fix cursor issues with QXL (rhbz 1507931) diff --git a/media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch b/media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch new file mode 100644 index 000000000..703b0d246 --- /dev/null +++ b/media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch @@ -0,0 +1,106 @@ +From patchwork Fri Sep 22 13:07:06 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [media] hdpvr: Fix an error handling path in hdpvr_probe() +From: Arvind Yadav +X-Patchwork-Id: 9966135 +Message-Id: +To: andreyknvl@google.com, hverkuil@xs4all.nl, mchehab@kernel.org, + laurent.pinchart@ideasonboard.com, dvyukov@google.com, + kcc@google.com, syzkaller@googlegroups.com +Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org +Date: Fri, 22 Sep 2017 18:37:06 +0530 + +Here, hdpvr_register_videodev() is responsible for setup and +register a video device. Also defining and initializing a worker. +hdpvr_register_videodev() is calling by hdpvr_probe at last. +So No need to flash any work here. +Unregister v4l2, free buffers and memory. If hdpvr_probe() will fail. + +Signed-off-by: Arvind Yadav +Reported-by: Andrey Konovalov +Tested-by: Andrey Konovalov +--- + drivers/media/usb/hdpvr/hdpvr-core.c | 26 +++++++++++++++----------- + 1 file changed, 15 insertions(+), 11 deletions(-) + +diff --git a/drivers/media/usb/hdpvr/hdpvr-core.c b/drivers/media/usb/hdpvr/hdpvr-core.c +index dbe29c6..1e8cbaf 100644 +--- a/drivers/media/usb/hdpvr/hdpvr-core.c ++++ b/drivers/media/usb/hdpvr/hdpvr-core.c +@@ -292,7 +292,7 @@ static int hdpvr_probe(struct usb_interface *interface, + /* register v4l2_device early so it can be used for printks */ + if (v4l2_device_register(&interface->dev, &dev->v4l2_dev)) { + dev_err(&interface->dev, "v4l2_device_register failed\n"); +- goto error; ++ goto error_free_dev; + } + + mutex_init(&dev->io_mutex); +@@ -301,7 +301,7 @@ static int hdpvr_probe(struct usb_interface *interface, + dev->usbc_buf = kmalloc(64, GFP_KERNEL); + if (!dev->usbc_buf) { + v4l2_err(&dev->v4l2_dev, "Out of memory\n"); +- goto error; ++ goto error_v4l2_unregister; + } + + init_waitqueue_head(&dev->wait_buffer); +@@ -339,13 +339,13 @@ static int hdpvr_probe(struct usb_interface *interface, + } + if (!dev->bulk_in_endpointAddr) { + v4l2_err(&dev->v4l2_dev, "Could not find bulk-in endpoint\n"); +- goto error; ++ goto error_put_usb; + } + + /* init the device */ + if (hdpvr_device_init(dev)) { + v4l2_err(&dev->v4l2_dev, "device init failed\n"); +- goto error; ++ goto error_put_usb; + } + + mutex_lock(&dev->io_mutex); +@@ -353,7 +353,7 @@ static int hdpvr_probe(struct usb_interface *interface, + mutex_unlock(&dev->io_mutex); + v4l2_err(&dev->v4l2_dev, + "allocating transfer buffers failed\n"); +- goto error; ++ goto error_put_usb; + } + mutex_unlock(&dev->io_mutex); + +@@ -361,7 +361,7 @@ static int hdpvr_probe(struct usb_interface *interface, + retval = hdpvr_register_i2c_adapter(dev); + if (retval < 0) { + v4l2_err(&dev->v4l2_dev, "i2c adapter register failed\n"); +- goto error; ++ goto error_free_buffers; + } + + client = hdpvr_register_ir_rx_i2c(dev); +@@ -394,13 +394,17 @@ static int hdpvr_probe(struct usb_interface *interface, + reg_fail: + #if IS_ENABLED(CONFIG_I2C) + i2c_del_adapter(&dev->i2c_adapter); ++error_free_buffers: + #endif ++ hdpvr_free_buffers(dev); ++error_put_usb: ++ usb_put_dev(dev->udev); ++ kfree(dev->usbc_buf); ++error_v4l2_unregister: ++ v4l2_device_unregister(&dev->v4l2_dev); ++error_free_dev: ++ kfree(dev); + error: +- if (dev) { +- flush_work(&dev->worker); +- /* this frees allocated memory */ +- hdpvr_delete(dev); +- } + return retval; + } + diff --git a/sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch b/sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch deleted file mode 100644 index d44f6cc28..000000000 --- a/sctp-do-not-peel-off-an-assoc-from-one-netns-to-another-one.patch +++ /dev/null @@ -1,62 +0,0 @@ -From df80cd9b28b9ebaa284a41df611dbf3a2d05ca74 Mon Sep 17 00:00:00 2001 -From: Xin Long -Date: Tue, 17 Oct 2017 23:26:10 +0800 -Subject: sctp: do not peel off an assoc from one netns to another one - -Now when peeling off an association to the sock in another netns, all -transports in this assoc are not to be rehashed and keep use the old -key in hashtable. - -As a transport uses sk->net as the hash key to insert into hashtable, -it would miss removing these transports from hashtable due to the new -netns when closing the sock and all transports are being freeed, then -later an use-after-free issue could be caused when looking up an asoc -and dereferencing those transports. - -This is a very old issue since very beginning, ChunYu found it with -syzkaller fuzz testing with this series: - - socket$inet6_sctp() - bind$inet6() - sendto$inet6() - unshare(0x40000000) - getsockopt$inet_sctp6_SCTP_GET_ASSOC_ID_LIST() - getsockopt$inet_sctp6_SCTP_SOCKOPT_PEELOFF() - -This patch is to block this call when peeling one assoc off from one -netns to another one, so that the netns of all transport would not -go out-sync with the key in hashtable. - -Note that this patch didn't fix it by rehashing transports, as it's -difficult to handle the situation when the tuple is already in use -in the new netns. Besides, no one would like to peel off one assoc -to another netns, considering ipaddrs, ifaces, etc. are usually -different. - -Reported-by: ChunYu Wang -Signed-off-by: Xin Long -Acked-by: Marcelo Ricardo Leitner -Acked-by: Neil Horman -Signed-off-by: David S. Miller ---- - net/sctp/socket.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/net/sctp/socket.c b/net/sctp/socket.c -index d4730ad..17841ab 100644 ---- a/net/sctp/socket.c -+++ b/net/sctp/socket.c -@@ -4906,6 +4906,10 @@ int sctp_do_peeloff(struct sock *sk, sctp_assoc_t id, struct socket **sockp) - struct socket *sock; - int err = 0; - -+ /* Do not peel off from one netns to another one. */ -+ if (!net_eq(current->nsproxy->net_ns, sock_net(sk))) -+ return -EINVAL; -+ - if (!asoc) - return -EINVAL; - --- -cgit v1.1 - diff --git a/sources b/sources index b2d20930c..89bb739fa 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.15.xz) = 54e1d3b526984efe90a5c759b35ac849ac65525c977b3982ef32b0fbb83e73f1fca92d73c3ffb1f23643d9f72a3083eeb4edb54768b105138722434811f622c4 +SHA512 (patch-4.13.16.xz) = 6d9e6593477fb7aa663e6b9cdccb1d30df8d3bb3721b93afa9ddefce539d267bee062809dd6c50135ba113cf5220ef4b2799f25eca73c791ff59f4480189d211 From cf68d0e49acfb0fe65181501549a41aee3961874 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 29 Nov 2017 13:16:14 -0500 Subject: [PATCH 074/289] Fix null pointer dereference when a USB device detached (rhbz 1462175) --- ...at-a-device-is-a-RMI-device-before-c.patch | 54 +++++++++++++++++++ kernel.spec | 6 +++ 2 files changed, 60 insertions(+) create mode 100644 HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch diff --git a/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch b/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch new file mode 100644 index 000000000..d6a8e6a52 --- /dev/null +++ b/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch @@ -0,0 +1,54 @@ +From ef14a4bf0910d06c7e202552914028d4956809cb Mon Sep 17 00:00:00 2001 +From: Andrew Duggan +Date: Tue, 17 Oct 2017 18:37:36 -0700 +Subject: [PATCH] HID: rmi: Check that a device is a RMI device before calling + RMI functions + +The hid-rmi driver may handle non rmi devices on composite USB devices. +Callbacks need to make sure that the current device is a RMI device before +calling RMI specific functions. Most callbacks already have this check, but +this patch adds checks to the remaining callbacks. + +Reported-by: Hendrik Langer +Tested-by: Hendrik Langer +Reviewed-by: Benjamin Tissoires +Signed-off-by: Andrew Duggan +Signed-off-by: Jiri Kosina +--- + drivers/hid/hid-rmi.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index ef241d66562e..0f43c4292685 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -368,6 +368,11 @@ static int rmi_check_sanity(struct hid_device *hdev, u8 *data, int size) + static int rmi_raw_event(struct hid_device *hdev, + struct hid_report *report, u8 *data, int size) + { ++ struct rmi_data *hdata = hid_get_drvdata(hdev); ++ ++ if (!(hdata->device_flags & RMI_DEVICE)) ++ return 0; ++ + size = rmi_check_sanity(hdev, data, size); + if (size < 2) + return 0; +@@ -713,9 +718,11 @@ static void rmi_remove(struct hid_device *hdev) + { + struct rmi_data *hdata = hid_get_drvdata(hdev); + +- clear_bit(RMI_STARTED, &hdata->flags); +- cancel_work_sync(&hdata->reset_work); +- rmi_unregister_transport_device(&hdata->xport); ++ if (hdata->device_flags & RMI_DEVICE) { ++ clear_bit(RMI_STARTED, &hdata->flags); ++ cancel_work_sync(&hdata->reset_work); ++ rmi_unregister_transport_device(&hdata->xport); ++ } + + hid_hw_stop(hdev); + } +-- +2.14.3 + diff --git a/kernel.spec b/kernel.spec index 4e075e524..00fa78b50 100644 --- a/kernel.spec +++ b/kernel.spec @@ -723,6 +723,9 @@ Patch639: CVE-2017-16538.patch # rhbz 1507931 Patch640: qxl_cursor_fix.patch +# rhbz 1462175 +Patch641: HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch + # END OF PATCH DEFINITIONS %endif @@ -2277,6 +2280,9 @@ fi # # %changelog +* Wed Nov 29 2017 Jeremy Cline +- Fix USB null pointer dereference on ThinkPad X1 (rhbz 1462175) + * Mon Nov 27 2017 Jeremy Cline - 4.13.16-300 - Linux v4.13.16 - Fix CVE-2017-16649 (rhbz 1516267 1516274) From d21fcd79dcab5a4fe1b02ef7b199c0b62071e9c8 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 29 Nov 2017 13:17:55 -0500 Subject: [PATCH 075/289] Fix failure to map memory on ppc64, ppc64le (rhbz 1518707) --- ...x-Fix-128TB-512TB-virtual-address-bo.patch | 204 ++++++++++++++++++ ...-Fix-512T-hint-detection-to-use-128T.patch | 49 +++++ ...-Fix-128TB-512TB-virtual-address-bou.patch | 129 +++++++++++ ...-Fix-fork-with-512TB-process-address.patch | 48 +++++ ...-Allow-MAP_FIXED-allocations-to-cros.patch | 38 ++++ kernel.spec | 12 +- 6 files changed, 478 insertions(+), 2 deletions(-) create mode 100644 0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch create mode 100644 0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch create mode 100644 0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch create mode 100644 0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch create mode 100644 0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch diff --git a/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch b/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch new file mode 100644 index 000000000..4d2bbfaf7 --- /dev/null +++ b/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch @@ -0,0 +1,204 @@ +From aca20afc84cf8578e044c67c4949672ac98f064a Mon Sep 17 00:00:00 2001 +From: Nicholas Piggin +Date: Tue, 28 Nov 2017 11:26:54 +0100 +Subject: [PATCH 1/5] powerpc/64s/radix: Fix 128TB-512TB virtual address + boundary case allocation + +commit 85e3f1adcb9d49300b0a943bb93f9604be375bfb upstream. + +Radix VA space allocations test addresses against mm->task_size which +is 512TB, even in cases where the intention is to limit allocation to +below 128TB. + +This results in mmap with a hint address below 128TB but address + +length above 128TB succeeding when it should fail (as hash does after +the previous patch). + +Set the high address limit to be considered up front, and base +subsequent allocation checks on that consistently. + +Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") +Signed-off-by: Nicholas Piggin +Reviewed-by: Aneesh Kumar K.V +Signed-off-by: Michael Ellerman +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/mm/hugetlbpage-radix.c | 26 ++++++++++++------ + arch/powerpc/mm/mmap.c | 55 ++++++++++++++++++++++--------------- + 2 files changed, 50 insertions(+), 31 deletions(-) + +diff --git a/arch/powerpc/mm/hugetlbpage-radix.c b/arch/powerpc/mm/hugetlbpage-radix.c +index a12e86395025..0a3d71aae175 100644 +--- a/arch/powerpc/mm/hugetlbpage-radix.c ++++ b/arch/powerpc/mm/hugetlbpage-radix.c +@@ -48,17 +48,28 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, + struct mm_struct *mm = current->mm; + struct vm_area_struct *vma; + struct hstate *h = hstate_file(file); ++ int fixed = (flags & MAP_FIXED); ++ unsigned long high_limit; + struct vm_unmapped_area_info info; + +- if (unlikely(addr > mm->context.addr_limit && addr < TASK_SIZE)) +- mm->context.addr_limit = TASK_SIZE; ++ high_limit = DEFAULT_MAP_WINDOW; ++ if (addr >= high_limit || (fixed && (addr + len > high_limit))) ++ high_limit = TASK_SIZE; + + if (len & ~huge_page_mask(h)) + return -EINVAL; +- if (len > mm->task_size) ++ if (len > high_limit) + return -ENOMEM; ++ if (fixed) { ++ if (addr > high_limit - len) ++ return -ENOMEM; ++ } + +- if (flags & MAP_FIXED) { ++ if (unlikely(addr > mm->context.addr_limit && ++ mm->context.addr_limit != TASK_SIZE)) ++ mm->context.addr_limit = TASK_SIZE; ++ ++ if (fixed) { + if (prepare_hugepage_range(file, addr, len)) + return -EINVAL; + return addr; +@@ -67,7 +78,7 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, + if (addr) { + addr = ALIGN(addr, huge_page_size(h)); + vma = find_vma(mm, addr); +- if (mm->task_size - len >= addr && ++ if (high_limit - len >= addr && + (!vma || addr + len <= vm_start_gap(vma))) + return addr; + } +@@ -78,12 +89,9 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, + info.flags = VM_UNMAPPED_AREA_TOPDOWN; + info.length = len; + info.low_limit = PAGE_SIZE; +- info.high_limit = current->mm->mmap_base; ++ info.high_limit = mm->mmap_base + (high_limit - DEFAULT_MAP_WINDOW); + info.align_mask = PAGE_MASK & ~huge_page_mask(h); + info.align_offset = 0; + +- if (addr > DEFAULT_MAP_WINDOW) +- info.high_limit += mm->context.addr_limit - DEFAULT_MAP_WINDOW; +- + return vm_unmapped_area(&info); + } +diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c +index 5d78b193fec4..6d476a7b5611 100644 +--- a/arch/powerpc/mm/mmap.c ++++ b/arch/powerpc/mm/mmap.c +@@ -106,22 +106,32 @@ radix__arch_get_unmapped_area(struct file *filp, unsigned long addr, + { + struct mm_struct *mm = current->mm; + struct vm_area_struct *vma; ++ int fixed = (flags & MAP_FIXED); ++ unsigned long high_limit; + struct vm_unmapped_area_info info; + ++ high_limit = DEFAULT_MAP_WINDOW; ++ if (addr >= high_limit || (fixed && (addr + len > high_limit))) ++ high_limit = TASK_SIZE; ++ ++ if (len > high_limit) ++ return -ENOMEM; ++ if (fixed) { ++ if (addr > high_limit - len) ++ return -ENOMEM; ++ } ++ + if (unlikely(addr > mm->context.addr_limit && + mm->context.addr_limit != TASK_SIZE)) + mm->context.addr_limit = TASK_SIZE; + +- if (len > mm->task_size - mmap_min_addr) +- return -ENOMEM; +- +- if (flags & MAP_FIXED) ++ if (fixed) + return addr; + + if (addr) { + addr = PAGE_ALIGN(addr); + vma = find_vma(mm, addr); +- if (mm->task_size - len >= addr && addr >= mmap_min_addr && ++ if (high_limit - len >= addr && addr >= mmap_min_addr && + (!vma || addr + len <= vm_start_gap(vma))) + return addr; + } +@@ -129,13 +139,9 @@ radix__arch_get_unmapped_area(struct file *filp, unsigned long addr, + info.flags = 0; + info.length = len; + info.low_limit = mm->mmap_base; ++ info.high_limit = high_limit; + info.align_mask = 0; + +- if (unlikely(addr > DEFAULT_MAP_WINDOW)) +- info.high_limit = mm->context.addr_limit; +- else +- info.high_limit = DEFAULT_MAP_WINDOW; +- + return vm_unmapped_area(&info); + } + +@@ -149,37 +155,42 @@ radix__arch_get_unmapped_area_topdown(struct file *filp, + struct vm_area_struct *vma; + struct mm_struct *mm = current->mm; + unsigned long addr = addr0; ++ int fixed = (flags & MAP_FIXED); ++ unsigned long high_limit; + struct vm_unmapped_area_info info; + ++ high_limit = DEFAULT_MAP_WINDOW; ++ if (addr >= high_limit || (fixed && (addr + len > high_limit))) ++ high_limit = TASK_SIZE; ++ ++ if (len > high_limit) ++ return -ENOMEM; ++ if (fixed) { ++ if (addr > high_limit - len) ++ return -ENOMEM; ++ } ++ + if (unlikely(addr > mm->context.addr_limit && + mm->context.addr_limit != TASK_SIZE)) + mm->context.addr_limit = TASK_SIZE; + +- /* requested length too big for entire address space */ +- if (len > mm->task_size - mmap_min_addr) +- return -ENOMEM; +- +- if (flags & MAP_FIXED) ++ if (fixed) + return addr; + +- /* requesting a specific address */ + if (addr) { + addr = PAGE_ALIGN(addr); + vma = find_vma(mm, addr); +- if (mm->task_size - len >= addr && addr >= mmap_min_addr && +- (!vma || addr + len <= vm_start_gap(vma))) ++ if (high_limit - len >= addr && addr >= mmap_min_addr && ++ (!vma || addr + len <= vm_start_gap(vma))) + return addr; + } + + info.flags = VM_UNMAPPED_AREA_TOPDOWN; + info.length = len; + info.low_limit = max(PAGE_SIZE, mmap_min_addr); +- info.high_limit = mm->mmap_base; ++ info.high_limit = mm->mmap_base + (high_limit - DEFAULT_MAP_WINDOW); + info.align_mask = 0; + +- if (addr > DEFAULT_MAP_WINDOW) +- info.high_limit += mm->context.addr_limit - DEFAULT_MAP_WINDOW; +- + addr = vm_unmapped_area(&info); + if (!(addr & ~PAGE_MASK)) + return addr; +-- +2.14.3 + diff --git a/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch b/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch new file mode 100644 index 000000000..fc6b806d7 --- /dev/null +++ b/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch @@ -0,0 +1,49 @@ +From 75c7f5172c113af1ea3cf094436c9e03191673e0 Mon Sep 17 00:00:00 2001 +From: Michael Ellerman +Date: Tue, 28 Nov 2017 11:26:55 +0100 +Subject: [PATCH 2/5] powerpc/64s/hash: Fix 512T hint detection to use >= 128T + +commit 7ece370996b694ae263025e056ad785afc1be5ab upstream. + +Currently userspace is able to request mmap() search between 128T-512T +by specifying a hint address that is greater than 128T. But that means +a hint of 128T exactly will return an address below 128T, which is +confusing and wrong. + +So fix the logic to check the hint is greater than *or equal* to 128T. + +Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") +Suggested-by: Aneesh Kumar K.V +Suggested-by: Nicholas Piggin +[mpe: Split out of Nick's bigger patch] +Signed-off-by: Michael Ellerman +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/mm/slice.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c +index 45f6740dd407..48a5312103a1 100644 +--- a/arch/powerpc/mm/slice.c ++++ b/arch/powerpc/mm/slice.c +@@ -419,7 +419,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, + /* + * Check if we need to expland slice area. + */ +- if (unlikely(addr > mm->context.addr_limit && ++ if (unlikely(addr >= mm->context.addr_limit && + mm->context.addr_limit != TASK_SIZE)) { + mm->context.addr_limit = TASK_SIZE; + on_each_cpu(slice_flush_segments, mm, 1); +@@ -427,7 +427,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, + /* + * This mmap request can allocate upt to 512TB + */ +- if (addr > DEFAULT_MAP_WINDOW) ++ if (addr >= DEFAULT_MAP_WINDOW) + high_limit = mm->context.addr_limit; + else + high_limit = DEFAULT_MAP_WINDOW; +-- +2.14.3 + diff --git a/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch b/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch new file mode 100644 index 000000000..009068a3b --- /dev/null +++ b/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch @@ -0,0 +1,129 @@ +From e90387a8d2227f95bf5e5b5ffd816d48a87466e2 Mon Sep 17 00:00:00 2001 +From: Nicholas Piggin +Date: Tue, 28 Nov 2017 11:26:56 +0100 +Subject: [PATCH 3/5] powerpc/64s/hash: Fix 128TB-512TB virtual address + boundary case allocation + +commit 6a72dc038b615229a1b285829d6c8378d15c2347 upstream. + +When allocating VA space with a hint that crosses 128TB, the SLB +addr_limit variable is not expanded if addr is not > 128TB, but the +slice allocation looks at task_size, which is 512TB. This results in +slice_check_fit() incorrectly succeeding because the slice_count +truncates off bit 128 of the requested mask, so the comparison to the +available mask succeeds. + +Fix this by using mm->context.addr_limit instead of mm->task_size for +testing allocation limits. This causes such allocations to fail. + +Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") +Reported-by: Florian Weimer +Signed-off-by: Nicholas Piggin +Reviewed-by: Aneesh Kumar K.V +Signed-off-by: Michael Ellerman +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/mm/slice.c | 50 ++++++++++++++++++++++++------------------------- + 1 file changed, 24 insertions(+), 26 deletions(-) + +diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c +index 48a5312103a1..3889201b560c 100644 +--- a/arch/powerpc/mm/slice.c ++++ b/arch/powerpc/mm/slice.c +@@ -96,7 +96,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr, + { + struct vm_area_struct *vma; + +- if ((mm->task_size - len) < addr) ++ if ((mm->context.addr_limit - len) < addr) + return 0; + vma = find_vma(mm, addr); + return (!vma || (addr + len) <= vm_start_gap(vma)); +@@ -133,7 +133,7 @@ static void slice_mask_for_free(struct mm_struct *mm, struct slice_mask *ret) + if (!slice_low_has_vma(mm, i)) + ret->low_slices |= 1u << i; + +- if (mm->task_size <= SLICE_LOW_TOP) ++ if (mm->context.addr_limit <= SLICE_LOW_TOP) + return; + + for (i = 0; i < GET_HIGH_SLICE_INDEX(mm->context.addr_limit); i++) +@@ -412,25 +412,31 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, + struct slice_mask compat_mask; + int fixed = (flags & MAP_FIXED); + int pshift = max_t(int, mmu_psize_defs[psize].shift, PAGE_SHIFT); ++ unsigned long page_size = 1UL << pshift; + struct mm_struct *mm = current->mm; + unsigned long newaddr; + unsigned long high_limit; + +- /* +- * Check if we need to expland slice area. +- */ +- if (unlikely(addr >= mm->context.addr_limit && +- mm->context.addr_limit != TASK_SIZE)) { +- mm->context.addr_limit = TASK_SIZE; ++ high_limit = DEFAULT_MAP_WINDOW; ++ if (addr >= high_limit) ++ high_limit = TASK_SIZE; ++ ++ if (len > high_limit) ++ return -ENOMEM; ++ if (len & (page_size - 1)) ++ return -EINVAL; ++ if (fixed) { ++ if (addr & (page_size - 1)) ++ return -EINVAL; ++ if (addr > high_limit - len) ++ return -ENOMEM; ++ } ++ ++ if (high_limit > mm->context.addr_limit) { ++ mm->context.addr_limit = high_limit; + on_each_cpu(slice_flush_segments, mm, 1); + } +- /* +- * This mmap request can allocate upt to 512TB +- */ +- if (addr >= DEFAULT_MAP_WINDOW) +- high_limit = mm->context.addr_limit; +- else +- high_limit = DEFAULT_MAP_WINDOW; ++ + /* + * init different masks + */ +@@ -446,27 +452,19 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, + + /* Sanity checks */ + BUG_ON(mm->task_size == 0); ++ BUG_ON(mm->context.addr_limit == 0); + VM_BUG_ON(radix_enabled()); + + slice_dbg("slice_get_unmapped_area(mm=%p, psize=%d...\n", mm, psize); + slice_dbg(" addr=%lx, len=%lx, flags=%lx, topdown=%d\n", + addr, len, flags, topdown); + +- if (len > mm->task_size) +- return -ENOMEM; +- if (len & ((1ul << pshift) - 1)) +- return -EINVAL; +- if (fixed && (addr & ((1ul << pshift) - 1))) +- return -EINVAL; +- if (fixed && addr > (mm->task_size - len)) +- return -ENOMEM; +- + /* If hint, make sure it matches our alignment restrictions */ + if (!fixed && addr) { +- addr = _ALIGN_UP(addr, 1ul << pshift); ++ addr = _ALIGN_UP(addr, page_size); + slice_dbg(" aligned addr=%lx\n", addr); + /* Ignore hint if it's too large or overlaps a VMA */ +- if (addr > mm->task_size - len || ++ if (addr > high_limit - len || + !slice_area_is_free(mm, addr, len)) + addr = 0; + } +-- +2.14.3 + diff --git a/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch b/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch new file mode 100644 index 000000000..75d9d3241 --- /dev/null +++ b/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch @@ -0,0 +1,48 @@ +From fe50aa4374f20333d9b077bbe09397d38112b081 Mon Sep 17 00:00:00 2001 +From: Nicholas Piggin +Date: Tue, 28 Nov 2017 11:26:57 +0100 +Subject: [PATCH 4/5] powerpc/64s/hash: Fix fork() with 512TB process address + space + +commit effc1b25088502fbd30305c79773de2d1f7470a6 upstream. + +Hash unconditionally resets the addr_limit to default (128TB) when the +mm context is initialised. If a process has > 128TB mappings when it +forks, the child will not get the 512TB addr_limit, so accesses to +valid > 128TB mappings will fail in the child. + +Fix this by only resetting the addr_limit to default if it was 0. Non +zero indicates it was duplicated from the parent (0 means exec()). + +Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") +Signed-off-by: Nicholas Piggin +Reviewed-by: Aneesh Kumar K.V +Signed-off-by: Michael Ellerman +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/mm/mmu_context_book3s64.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/powerpc/mm/mmu_context_book3s64.c b/arch/powerpc/mm/mmu_context_book3s64.c +index a75f63833284..bb9cdf01fc4f 100644 +--- a/arch/powerpc/mm/mmu_context_book3s64.c ++++ b/arch/powerpc/mm/mmu_context_book3s64.c +@@ -95,11 +95,11 @@ static int hash__init_new_context(struct mm_struct *mm) + return index; + + /* +- * We do switch_slb() early in fork, even before we setup the +- * mm->context.addr_limit. Default to max task size so that we copy the +- * default values to paca which will help us to handle slb miss early. ++ * In the case of exec, use the default limit, ++ * otherwise inherit it from the mm we are duplicating. + */ +- mm->context.addr_limit = DEFAULT_MAP_WINDOW_USER64; ++ if (!mm->context.addr_limit) ++ mm->context.addr_limit = DEFAULT_MAP_WINDOW_USER64; + + /* + * The old code would re-promote on fork, we don't do that when using +-- +2.14.3 + diff --git a/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch b/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch new file mode 100644 index 000000000..e7e9a4acf --- /dev/null +++ b/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch @@ -0,0 +1,38 @@ +From 2beb551e379191c2a24e7db8c4fcc64fef4b921a Mon Sep 17 00:00:00 2001 +From: Nicholas Piggin +Date: Tue, 28 Nov 2017 11:26:58 +0100 +Subject: [PATCH 5/5] powerpc/64s/hash: Allow MAP_FIXED allocations to cross + 128TB boundary + +commit 35602f82d0c765f991420e319c8d3a596c921eb8 upstream. + +While mapping hints with a length that cross 128TB are disallowed, +MAP_FIXED allocations that cross 128TB are allowed. These are failing +on hash (on radix they succeed). Add an additional case for fixed +mappings to expand the addr_limit when crossing 128TB. + +Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") +Signed-off-by: Nicholas Piggin +Reviewed-by: Aneesh Kumar K.V +Signed-off-by: Michael Ellerman +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/mm/slice.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c +index 3889201b560c..a4f93699194b 100644 +--- a/arch/powerpc/mm/slice.c ++++ b/arch/powerpc/mm/slice.c +@@ -418,7 +418,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, + unsigned long high_limit; + + high_limit = DEFAULT_MAP_WINDOW; +- if (addr >= high_limit) ++ if (addr >= high_limit || (fixed && (addr + len > high_limit))) + high_limit = TASK_SIZE; + + if (len > high_limit) +-- +2.14.3 + diff --git a/kernel.spec b/kernel.spec index 00fa78b50..1dd49c1f3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 300 +%global baserelease 301 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -726,6 +726,13 @@ Patch640: qxl_cursor_fix.patch # rhbz 1462175 Patch641: HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch +# rhbz 1518707 +Patch642: 0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch +Patch643: 0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch +Patch644: 0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch +Patch645: 0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch +Patch646: 0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch + # END OF PATCH DEFINITIONS %endif @@ -2280,8 +2287,9 @@ fi # # %changelog -* Wed Nov 29 2017 Jeremy Cline +* Wed Nov 29 2017 Jeremy Cline - 4.13.16-301 - Fix USB null pointer dereference on ThinkPad X1 (rhbz 1462175) +- Patches ppc64, ppc64le mm failure (rhbz 1518707) * Mon Nov 27 2017 Jeremy Cline - 4.13.16-300 - Linux v4.13.16 From c4b8642d15c8fb3f473e1eb913839200fde87594 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 30 Nov 2017 09:56:34 -0500 Subject: [PATCH 076/289] Fix CVE-2017-1000405 (rhbz 1516514 1519115) --- ...ke-page-table-dirty-unconditionally-.patch | 108 ++++++++++++++++++ kernel.spec | 8 +- 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 0001-mm-thp-Do-not-make-page-table-dirty-unconditionally-.patch diff --git a/0001-mm-thp-Do-not-make-page-table-dirty-unconditionally-.patch b/0001-mm-thp-Do-not-make-page-table-dirty-unconditionally-.patch new file mode 100644 index 000000000..2a1d7b719 --- /dev/null +++ b/0001-mm-thp-Do-not-make-page-table-dirty-unconditionally-.patch @@ -0,0 +1,108 @@ +From a8f97366452ed491d13cf1e44241bc0b5740b1f0 Mon Sep 17 00:00:00 2001 +From: "Kirill A. Shutemov" +Date: Mon, 27 Nov 2017 06:21:25 +0300 +Subject: [PATCH] mm, thp: Do not make page table dirty unconditionally in + touch_p[mu]d() + +Currently, we unconditionally make page table dirty in touch_pmd(). +It may result in false-positive can_follow_write_pmd(). + +We may avoid the situation, if we would only make the page table entry +dirty if caller asks for write access -- FOLL_WRITE. + +The patch also changes touch_pud() in the same way. + +Signed-off-by: Kirill A. Shutemov +Cc: Michal Hocko +Cc: Hugh Dickins +Signed-off-by: Linus Torvalds +--- + mm/huge_memory.c | 36 +++++++++++++----------------------- + 1 file changed, 13 insertions(+), 23 deletions(-) + +diff --git a/mm/huge_memory.c b/mm/huge_memory.c +index 86fe697e8bfb..0e7ded98d114 100644 +--- a/mm/huge_memory.c ++++ b/mm/huge_memory.c +@@ -842,20 +842,15 @@ EXPORT_SYMBOL_GPL(vmf_insert_pfn_pud); + #endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */ + + static void touch_pmd(struct vm_area_struct *vma, unsigned long addr, +- pmd_t *pmd) ++ pmd_t *pmd, int flags) + { + pmd_t _pmd; + +- /* +- * We should set the dirty bit only for FOLL_WRITE but for now +- * the dirty bit in the pmd is meaningless. And if the dirty +- * bit will become meaningful and we'll only set it with +- * FOLL_WRITE, an atomic set_bit will be required on the pmd to +- * set the young bit, instead of the current set_pmd_at. +- */ +- _pmd = pmd_mkyoung(pmd_mkdirty(*pmd)); ++ _pmd = pmd_mkyoung(*pmd); ++ if (flags & FOLL_WRITE) ++ _pmd = pmd_mkdirty(_pmd); + if (pmdp_set_access_flags(vma, addr & HPAGE_PMD_MASK, +- pmd, _pmd, 1)) ++ pmd, _pmd, flags & FOLL_WRITE)) + update_mmu_cache_pmd(vma, addr, pmd); + } + +@@ -884,7 +879,7 @@ struct page *follow_devmap_pmd(struct vm_area_struct *vma, unsigned long addr, + return NULL; + + if (flags & FOLL_TOUCH) +- touch_pmd(vma, addr, pmd); ++ touch_pmd(vma, addr, pmd, flags); + + /* + * device mapped pages can only be returned if the +@@ -995,20 +990,15 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, + + #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD + static void touch_pud(struct vm_area_struct *vma, unsigned long addr, +- pud_t *pud) ++ pud_t *pud, int flags) + { + pud_t _pud; + +- /* +- * We should set the dirty bit only for FOLL_WRITE but for now +- * the dirty bit in the pud is meaningless. And if the dirty +- * bit will become meaningful and we'll only set it with +- * FOLL_WRITE, an atomic set_bit will be required on the pud to +- * set the young bit, instead of the current set_pud_at. +- */ +- _pud = pud_mkyoung(pud_mkdirty(*pud)); ++ _pud = pud_mkyoung(*pud); ++ if (flags & FOLL_WRITE) ++ _pud = pud_mkdirty(_pud); + if (pudp_set_access_flags(vma, addr & HPAGE_PUD_MASK, +- pud, _pud, 1)) ++ pud, _pud, flags & FOLL_WRITE)) + update_mmu_cache_pud(vma, addr, pud); + } + +@@ -1031,7 +1021,7 @@ struct page *follow_devmap_pud(struct vm_area_struct *vma, unsigned long addr, + return NULL; + + if (flags & FOLL_TOUCH) +- touch_pud(vma, addr, pud); ++ touch_pud(vma, addr, pud, flags); + + /* + * device mapped pages can only be returned if the +@@ -1424,7 +1414,7 @@ struct page *follow_trans_huge_pmd(struct vm_area_struct *vma, + page = pmd_page(*pmd); + VM_BUG_ON_PAGE(!PageHead(page) && !is_zone_device_page(page), page); + if (flags & FOLL_TOUCH) +- touch_pmd(vma, addr, pmd); ++ touch_pmd(vma, addr, pmd, flags); + if ((flags & FOLL_MLOCK) && (vma->vm_flags & VM_LOCKED)) { + /* + * We don't mlock() pte-mapped THPs. This way we can avoid +-- +2.14.3 + diff --git a/kernel.spec b/kernel.spec index 1dd49c1f3..0d747870b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 301 +%global baserelease 302 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -669,6 +669,9 @@ Patch502: CVE-2017-7477.patch # CVE-2017-16644 rhbz 1516273 1516274 Patch503: media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch +# CVE-2017-1000405 rhbz 1516514 1519115 +Patch504: 0001-mm-thp-Do-not-make-page-table-dirty-unconditionally-.patch + # 600 - Patches for improved Bay and Cherry Trail device support # Below patches are submitted upstream, awaiting review / merging Patch601: 0001-Input-gpio_keys-Allow-suppression-of-input-events-fo.patch @@ -2287,6 +2290,9 @@ fi # # %changelog +* Thu Nov 30 2017 Jeremy Cline - 4.13.16-302 +- Fix CVE-2017-1000405 (rhbz 1516514 1519115) + * Wed Nov 29 2017 Jeremy Cline - 4.13.16-301 - Fix USB null pointer dereference on ThinkPad X1 (rhbz 1462175) - Patches ppc64, ppc64le mm failure (rhbz 1518707) From 6f8cd48d501f2cb2c6a1b57fd5815a1970388775 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 4 Dec 2017 08:25:25 +0000 Subject: [PATCH 077/289] enable Simple PM Bus on ARM --- configs/base-generic/arm/CONFIG_SIMPLE_PM_BUS | 1 + kernel-aarch64-debug.config | 2 +- kernel-aarch64.config | 2 +- kernel-armv7hl-debug.config | 2 +- kernel-armv7hl-lpae-debug.config | 2 +- kernel-armv7hl-lpae.config | 2 +- kernel-armv7hl.config | 2 +- 7 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 configs/base-generic/arm/CONFIG_SIMPLE_PM_BUS diff --git a/configs/base-generic/arm/CONFIG_SIMPLE_PM_BUS b/configs/base-generic/arm/CONFIG_SIMPLE_PM_BUS new file mode 100644 index 000000000..3cc21476a --- /dev/null +++ b/configs/base-generic/arm/CONFIG_SIMPLE_PM_BUS @@ -0,0 +1 @@ +CONFIG_SIMPLE_PM_BUS=y diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index 398e4a2a7..cd7ca3f3e 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -4981,7 +4981,7 @@ CONFIG_SH_ETH=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SIMPLE_PM_BUS=y CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set diff --git a/kernel-aarch64.config b/kernel-aarch64.config index a55442073..677a69050 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -4959,7 +4959,7 @@ CONFIG_SH_ETH=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SIMPLE_PM_BUS=y CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index a1de25f55..5347087c6 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -5359,7 +5359,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SIMPLE_PM_BUS=y CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 2ceb6e17e..a698cae79 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -5038,7 +5038,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SIMPLE_PM_BUS=y CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index ed501e5a5..73b557b16 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -5016,7 +5016,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SIMPLE_PM_BUS=y CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 9ae4f4dda..b6cfd9612 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -5337,7 +5337,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SIMPLE_PM_BUS=y CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set From c5708d5b6ee91238bbe2b0176ddf284b1f71251c Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 4 Dec 2017 07:44:43 -0600 Subject: [PATCH 078/289] Linux v4.14.3 rebase --- ...ng-rtl8822be-fix-wrong-dma-unmap-len.patch | 46 + ...17042_battery-Add-support-for-ACPI-e.patch | 78 - ...x-Fix-128TB-512TB-virtual-address-bo.patch | 204 -- ...17042_battery-Fix-ACPI-interrupt-iss.patch | 80 - ...-Fix-512T-hint-detection-to-use-128T.patch | 49 - ...-Fix-128TB-512TB-virtual-address-bou.patch | 129 -- ...-Fix-fork-with-512TB-process-address.patch | 48 - ...-Allow-MAP_FIXED-allocations-to-cros.patch | 38 - ...d-support-for-capacitive-home-button.patch | 53 - ...-Add-support-for-BOSC0200-ACPI-devic.patch | 32 - ...ntel-Cherry-Trail-Whiskey-Cove-SMBUS.patch | 410 ---- ...support-for-CPUs-without-virtual-NMI.patch | 296 --- 1-3-net-set-tb--fast_sk_family.patch | 50 - ...e-inet6_rcv_saddr-to-compare-sockets.patch | 44 - 3-3-inet-fix-improper-empty-comparison.patch | 53 - CVE-2017-16538.patch | 166 -- CVE-2017-7477.patch | 73 - ...at-a-device-is-a-RMI-device-before-c.patch | 54 - ...ble-kernel-tracking-on-SMBus-devices.patch | 51 - ...result-code-of-ahci_reset_controller.patch | 77 - allwinner-net-emac.patch | 1481 +++++++++++-- arm-of-restrict-dma-configuration.patch | 121 - arm-tegra-fix-gpu-iommu.patch | 39 - ...winner-a64-pine64-Use-dcdc1-regulato.patch | 41 + arm64-aw64-devices.patch | 712 ------ arm64-cavium-fixes.patch | 455 ---- arm64-socionext-96b-enablement.patch | 201 ++ arm64-xgene-acpi-fix.patch | 38 - .../CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ | 1 + baseconfig/CONFIG_ALTERA_MSGDMA | 1 + baseconfig/CONFIG_ATH10K_USB | 1 + baseconfig/CONFIG_BATTERY_MAX1721X | 1 + baseconfig/CONFIG_BLK_CPQ_CISS_DA | 1 - baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD | 1 + baseconfig/CONFIG_BPF_STREAM_PARSER | 1 + baseconfig/CONFIG_CCS811 | 1 + baseconfig/CONFIG_CEC_PIN | 1 + baseconfig/CONFIG_CISS_SCSI_TAPE | 1 - baseconfig/CONFIG_CLK_HSDK | 1 + baseconfig/CONFIG_CLOCK_THERMAL | 1 + baseconfig/CONFIG_CRYPTO_DEV_SP_CCP | 1 + baseconfig/CONFIG_DEVFREQ_THERMAL | 1 + baseconfig/CONFIG_DP83867_PHY | 2 +- baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE | 1 + baseconfig/CONFIG_GPIO_BD9571MWV | 1 + baseconfig/CONFIG_GPIO_TPS68470 | 1 + baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS | 1 + baseconfig/CONFIG_INPUT_PWM_VIBRA | 1 + baseconfig/CONFIG_INPUT_RK805_PWRKEY | 1 + baseconfig/CONFIG_IP_DCCP | 2 +- baseconfig/CONFIG_IR_GPIO_TX | 1 + baseconfig/CONFIG_IR_PWM_TX | 1 + baseconfig/CONFIG_LEDS_AS3645A | 1 + .../CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT | 1 + baseconfig/CONFIG_LTC2471 | 1 + baseconfig/CONFIG_MDIO_I2C | 1 + baseconfig/CONFIG_MFD_BD9571MWV | 1 + baseconfig/CONFIG_MFD_TPS68470 | 1 + baseconfig/CONFIG_MLX5_ESWITCH | 1 + baseconfig/CONFIG_MLX5_MPFS | 1 + baseconfig/CONFIG_MMC_BLOCK_BOUNCE | 1 - baseconfig/CONFIG_NET_NSH | 1 + baseconfig/CONFIG_NET_VENDOR_HUAWEI | 1 + baseconfig/CONFIG_NFT_FIB_NETDEV | 1 + baseconfig/CONFIG_PHYLINK | 1 + baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY | 1 + baseconfig/CONFIG_PI433 | 1 + baseconfig/CONFIG_PINCTRL_RK805 | 1 + baseconfig/CONFIG_PINCTRL_SPRD | 1 + baseconfig/CONFIG_PINCTRL_SPRD_SC9860 | 1 + baseconfig/CONFIG_PM_OPP | 2 +- baseconfig/CONFIG_QCOM_GLINK_SSR | 1 + baseconfig/CONFIG_R8822BE | 1 + baseconfig/CONFIG_REGULATOR_BD9571MWV | 1 + baseconfig/CONFIG_RESET_ATTACK_MITIGATION | 1 + baseconfig/CONFIG_RESET_HSDK_V1 | 1 + baseconfig/CONFIG_RMNET | 1 + baseconfig/CONFIG_ROCKCHIP_PHY | 1 + baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM | 1 + baseconfig/CONFIG_SENSORS_IBM_CFFPS | 1 + baseconfig/CONFIG_SENSORS_TPS53679 | 1 + baseconfig/CONFIG_SERIO_GPIO_PS2 | 1 + baseconfig/CONFIG_SFP | 1 + baseconfig/CONFIG_SLAB_FREELIST_HARDENED | 1 + baseconfig/CONFIG_SND_BCD2000 | 2 +- baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT | 2 +- baseconfig/CONFIG_SND_SOC_CS43130 | 1 + baseconfig/CONFIG_SND_SOC_WM8524 | 1 + baseconfig/CONFIG_SQUASHFS_ZSTD | 1 + baseconfig/CONFIG_STRING_SELFTEST | 1 + baseconfig/CONFIG_W1_SLAVE_DS2805 | 1 + baseconfig/CONFIG_WIL6210_DEBUGFS | 1 + baseconfig/CONFIG_ZRAM_WRITEBACK | 1 + .../arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG | 1 + baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 | 2 +- baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC | 1 + baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC | 1 + baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC | 1 + baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC | 1 + baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE | 2 +- baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM | 2 +- baseconfig/arm/CONFIG_MESON_GX_SOCINFO | 1 + .../arm/{armv7 => }/CONFIG_MTD_NAND_PXA3xx | 0 baseconfig/arm/CONFIG_ROCKCHIP_PHY | 1 + .../armv7 => }/CONFIG_SND_SOC_TEGRA20_AC97 | 0 .../armv7 => }/CONFIG_SND_SOC_TEGRA20_DAS | 0 .../{armv7 => }/CONFIG_SND_SOC_TEGRA20_I2S | 0 .../armv7 => }/CONFIG_SND_SOC_TEGRA20_SPDIF | 0 .../{armv7 => }/CONFIG_SND_SOC_TEGRA30_AHUB | 0 .../{armv7 => }/CONFIG_SND_SOC_TEGRA30_I2S | 0 baseconfig/arm/CONFIG_TINYDRM_REPAPER | 1 + baseconfig/arm/CONFIG_TINYDRM_ST7586 | 1 + baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC | 1 + baseconfig/arm/arm64/CONFIG_ARM64_PMEM | 1 + baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 | 2 +- baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX | 1 + baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML | 2 +- .../arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY | 1 + .../arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS | 1 + baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS | 1 + baseconfig/arm/arm64/CONFIG_VMAP_STACK | 1 + .../arm/{ => armv7}/CONFIG_DRM_SUN4I_BACKEND | 0 .../arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC | 1 + baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML | 1 - baseconfig/arm/armv7/CONFIG_PWM_TIECAP | 1 + baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X | 1 - baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU | 1 + baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU | 1 + .../armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ | 1 + .../arm/armv7/armv7/CONFIG_IMX_REMOTEPROC | 1 + .../arm/armv7/armv7/CONFIG_MMC_QCOM_DML | 2 +- .../arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS | 1 + .../arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS | 1 - baseconfig/powerpc/CONFIG_PPC_MEMTRACE | 1 + baseconfig/powerpc/CONFIG_PPC_VAS | 1 + baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS | 1 + baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA | 1 - baseconfig/s390x/CONFIG_CMA | 1 + baseconfig/s390x/CONFIG_CMA_AREAS | 1 + baseconfig/s390x/CONFIG_CMA_DEBUG | 1 + baseconfig/s390x/CONFIG_CMA_DEBUGFS | 1 + baseconfig/s390x/CONFIG_MFD_BD9571MWV | 1 + baseconfig/s390x/CONFIG_MFD_RTSX_USB | 1 + baseconfig/s390x/CONFIG_MFD_TPS68470 | 1 + baseconfig/s390x/CONFIG_MFD_VIPERBOARD | 1 + baseconfig/s390x/CONFIG_VMCP_CMA_SIZE | 1 + .../x86/CONFIG_CONFIG_PINCTRL_LEWISBURG | 1 + baseconfig/x86/CONFIG_HYPERV_VSOCKETS | 1 + baseconfig/x86/CONFIG_INTEL_RDT | 1 + baseconfig/x86/CONFIG_MAXSMP | 2 +- baseconfig/x86/CONFIG_PINCTRL_DENVERTON | 1 + baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND | 1 + baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT | 1 + .../CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT | 1 + baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE | 1 + baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC | 1 + baseconfig/x86/x86_64/CONFIG_HMM_MIRROR | 1 + .../CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT | 1 + baseconfig/x86/x86_64/CONFIG_NR_CPUS | 2 +- baseconfig/x86/x86_64/CONFIG_X86_5LEVEL | 1 + bcm2837-bluetooth-support.patch | 606 ----- bcm2837-move-dt.patch | 516 ----- bcm283x-vc4-fixes.patch | 1803 --------------- config_generation | 2 +- drm-cma-reduce-dmesg-logs.patch | 53 - ...cks-if-we-miss-the-pageflip-s-vblank.patch | 200 ++ ...t-GPU-clocks-if-we-miss-the-pageflip.patch | 238 -- efi-lockdown.patch | 1653 ++++++++------ kernel-aarch64-debug.config | 97 +- kernel-aarch64.config | 97 +- kernel-armv7hl-debug.config | 89 +- kernel-armv7hl-lpae-debug.config | 88 +- kernel-armv7hl-lpae.config | 88 +- kernel-armv7hl.config | 89 +- kernel-i686-PAE.config | 77 +- kernel-i686-PAEdebug.config | 75 +- kernel-i686-debug.config | 75 +- kernel-i686.config | 77 +- kernel-ppc64-debug.config | 72 +- kernel-ppc64.config | 72 +- kernel-ppc64le-debug.config | 72 +- kernel-ppc64le.config | 72 +- kernel-s390x-debug.config | 80 +- kernel-s390x.config | 80 +- kernel-x86_64-debug.config | 81 +- kernel-x86_64.config | 85 +- kernel.spec | 139 +- ...n-error-handling-path-in-hdpvr_probe.patch | 106 - ...-high-and-low-temperature-thresholds.patch | 79 - no-pcspkr-modalias.patch | 8 +- pci-mark-amd-stoney-gpu-ats-as-broken.patch | 47 - ...rce-host-mode-for-USB-on-apq8016-sbc.patch | 93 - qcom-clk-gpu-msm.patch | 27 - qcom-display-iommu.patch | 1960 ----------------- ...i_hdrc_msm_probe-missing-of_node_get.patch | 45 - qcom-msm89xx-fixes.patch | 159 -- qxl-fixes.patch | 330 +-- qxl_cursor_fix.patch | 565 ----- ...ze-support-for-NNP-nosuid-SELinux-do.patch | 220 -- silence-fbcon-logo.patch | 19 +- sources | 6 +- ...---RMI4-can-also-use-SMBUS-version-3.patch | 42 - 202 files changed, 4382 insertions(+), 11256 deletions(-) create mode 100644 0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch delete mode 100644 0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch delete mode 100644 0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch delete mode 100644 0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch delete mode 100644 0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch delete mode 100644 0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch delete mode 100644 0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch delete mode 100644 0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch delete mode 100644 0011-Input-goodix-Add-support-for-capacitive-home-button.patch delete mode 100644 0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch delete mode 100644 0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch delete mode 100644 1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch delete mode 100644 1-3-net-set-tb--fast_sk_family.patch delete mode 100644 2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch delete mode 100644 3-3-inet-fix-improper-empty-comparison.patch delete mode 100644 CVE-2017-16538.patch delete mode 100644 CVE-2017-7477.patch delete mode 100644 HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch delete mode 100644 Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch delete mode 100644 ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch delete mode 100644 arm-of-restrict-dma-configuration.patch delete mode 100644 arm-tegra-fix-gpu-iommu.patch create mode 100644 arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch delete mode 100644 arm64-aw64-devices.patch delete mode 100644 arm64-cavium-fixes.patch delete mode 100644 arm64-xgene-acpi-fix.patch create mode 100644 baseconfig/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ create mode 100644 baseconfig/CONFIG_ALTERA_MSGDMA create mode 100644 baseconfig/CONFIG_ATH10K_USB create mode 100644 baseconfig/CONFIG_BATTERY_MAX1721X delete mode 100644 baseconfig/CONFIG_BLK_CPQ_CISS_DA create mode 100644 baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD create mode 100644 baseconfig/CONFIG_BPF_STREAM_PARSER create mode 100644 baseconfig/CONFIG_CCS811 create mode 100644 baseconfig/CONFIG_CEC_PIN delete mode 100644 baseconfig/CONFIG_CISS_SCSI_TAPE create mode 100644 baseconfig/CONFIG_CLK_HSDK create mode 100644 baseconfig/CONFIG_CLOCK_THERMAL create mode 100644 baseconfig/CONFIG_CRYPTO_DEV_SP_CCP create mode 100644 baseconfig/CONFIG_DEVFREQ_THERMAL create mode 100644 baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE create mode 100644 baseconfig/CONFIG_GPIO_BD9571MWV create mode 100644 baseconfig/CONFIG_GPIO_TPS68470 create mode 100644 baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS create mode 100644 baseconfig/CONFIG_INPUT_PWM_VIBRA create mode 100644 baseconfig/CONFIG_INPUT_RK805_PWRKEY create mode 100644 baseconfig/CONFIG_IR_GPIO_TX create mode 100644 baseconfig/CONFIG_IR_PWM_TX create mode 100644 baseconfig/CONFIG_LEDS_AS3645A create mode 100644 baseconfig/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT create mode 100644 baseconfig/CONFIG_LTC2471 create mode 100644 baseconfig/CONFIG_MDIO_I2C create mode 100644 baseconfig/CONFIG_MFD_BD9571MWV create mode 100644 baseconfig/CONFIG_MFD_TPS68470 create mode 100644 baseconfig/CONFIG_MLX5_ESWITCH create mode 100644 baseconfig/CONFIG_MLX5_MPFS delete mode 100644 baseconfig/CONFIG_MMC_BLOCK_BOUNCE create mode 100644 baseconfig/CONFIG_NET_NSH create mode 100644 baseconfig/CONFIG_NET_VENDOR_HUAWEI create mode 100644 baseconfig/CONFIG_NFT_FIB_NETDEV create mode 100644 baseconfig/CONFIG_PHYLINK create mode 100644 baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY create mode 100644 baseconfig/CONFIG_PI433 create mode 100644 baseconfig/CONFIG_PINCTRL_RK805 create mode 100644 baseconfig/CONFIG_PINCTRL_SPRD create mode 100644 baseconfig/CONFIG_PINCTRL_SPRD_SC9860 create mode 100644 baseconfig/CONFIG_QCOM_GLINK_SSR create mode 100644 baseconfig/CONFIG_R8822BE create mode 100644 baseconfig/CONFIG_REGULATOR_BD9571MWV create mode 100644 baseconfig/CONFIG_RESET_ATTACK_MITIGATION create mode 100644 baseconfig/CONFIG_RESET_HSDK_V1 create mode 100644 baseconfig/CONFIG_RMNET create mode 100644 baseconfig/CONFIG_ROCKCHIP_PHY create mode 100644 baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM create mode 100644 baseconfig/CONFIG_SENSORS_IBM_CFFPS create mode 100644 baseconfig/CONFIG_SENSORS_TPS53679 create mode 100644 baseconfig/CONFIG_SERIO_GPIO_PS2 create mode 100644 baseconfig/CONFIG_SFP create mode 100644 baseconfig/CONFIG_SLAB_FREELIST_HARDENED create mode 100644 baseconfig/CONFIG_SND_SOC_CS43130 create mode 100644 baseconfig/CONFIG_SND_SOC_WM8524 create mode 100644 baseconfig/CONFIG_SQUASHFS_ZSTD create mode 100644 baseconfig/CONFIG_STRING_SELFTEST create mode 100644 baseconfig/CONFIG_W1_SLAVE_DS2805 create mode 100644 baseconfig/CONFIG_WIL6210_DEBUGFS create mode 100644 baseconfig/CONFIG_ZRAM_WRITEBACK create mode 100644 baseconfig/arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG create mode 100644 baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC create mode 100644 baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC create mode 100644 baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC create mode 100644 baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC create mode 100644 baseconfig/arm/CONFIG_MESON_GX_SOCINFO rename baseconfig/arm/{armv7 => }/CONFIG_MTD_NAND_PXA3xx (100%) create mode 100644 baseconfig/arm/CONFIG_ROCKCHIP_PHY rename baseconfig/arm/{armv7/armv7 => }/CONFIG_SND_SOC_TEGRA20_AC97 (100%) rename baseconfig/arm/{armv7/armv7 => }/CONFIG_SND_SOC_TEGRA20_DAS (100%) rename baseconfig/arm/{armv7 => }/CONFIG_SND_SOC_TEGRA20_I2S (100%) rename baseconfig/arm/{armv7/armv7 => }/CONFIG_SND_SOC_TEGRA20_SPDIF (100%) rename baseconfig/arm/{armv7 => }/CONFIG_SND_SOC_TEGRA30_AHUB (100%) rename baseconfig/arm/{armv7 => }/CONFIG_SND_SOC_TEGRA30_I2S (100%) create mode 100644 baseconfig/arm/CONFIG_TINYDRM_REPAPER create mode 100644 baseconfig/arm/CONFIG_TINYDRM_ST7586 create mode 100644 baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC create mode 100644 baseconfig/arm/arm64/CONFIG_ARM64_PMEM create mode 100644 baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX create mode 100644 baseconfig/arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY create mode 100644 baseconfig/arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS create mode 100644 baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS create mode 100644 baseconfig/arm/arm64/CONFIG_VMAP_STACK rename baseconfig/arm/{ => armv7}/CONFIG_DRM_SUN4I_BACKEND (100%) create mode 100644 baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC delete mode 100644 baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML create mode 100644 baseconfig/arm/armv7/CONFIG_PWM_TIECAP delete mode 100644 baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X create mode 100644 baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU create mode 100644 baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS delete mode 100644 baseconfig/arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS create mode 100644 baseconfig/powerpc/CONFIG_PPC_MEMTRACE create mode 100644 baseconfig/powerpc/CONFIG_PPC_VAS create mode 100644 baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS delete mode 100644 baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA create mode 100644 baseconfig/s390x/CONFIG_CMA create mode 100644 baseconfig/s390x/CONFIG_CMA_AREAS create mode 100644 baseconfig/s390x/CONFIG_CMA_DEBUG create mode 100644 baseconfig/s390x/CONFIG_CMA_DEBUGFS create mode 100644 baseconfig/s390x/CONFIG_MFD_BD9571MWV create mode 100644 baseconfig/s390x/CONFIG_MFD_RTSX_USB create mode 100644 baseconfig/s390x/CONFIG_MFD_TPS68470 create mode 100644 baseconfig/s390x/CONFIG_MFD_VIPERBOARD create mode 100644 baseconfig/s390x/CONFIG_VMCP_CMA_SIZE create mode 100644 baseconfig/x86/CONFIG_CONFIG_PINCTRL_LEWISBURG create mode 100644 baseconfig/x86/CONFIG_HYPERV_VSOCKETS create mode 100644 baseconfig/x86/CONFIG_INTEL_RDT create mode 100644 baseconfig/x86/CONFIG_PINCTRL_DENVERTON create mode 100644 baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND create mode 100644 baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT create mode 100644 baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT create mode 100644 baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE create mode 100644 baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC create mode 100644 baseconfig/x86/x86_64/CONFIG_HMM_MIRROR create mode 100644 baseconfig/x86/x86_64/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT create mode 100644 baseconfig/x86/x86_64/CONFIG_X86_5LEVEL delete mode 100644 bcm2837-move-dt.patch delete mode 100644 bcm283x-vc4-fixes.patch create mode 100644 drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch delete mode 100644 drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch delete mode 100644 media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch delete mode 100644 net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch delete mode 100644 pci-mark-amd-stoney-gpu-ats-as-broken.patch delete mode 100644 qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch delete mode 100644 qcom-clk-gpu-msm.patch delete mode 100644 qcom-display-iommu.patch delete mode 100644 qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch delete mode 100644 qxl_cursor_fix.patch delete mode 100644 selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch delete mode 100644 v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch diff --git a/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch b/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch new file mode 100644 index 000000000..540b925eb --- /dev/null +++ b/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch @@ -0,0 +1,46 @@ +From 37af97ef14c201b1db8dd341aabd262da23e48aa Mon Sep 17 00:00:00 2001 +From: Fedora Kernel Team +Date: Mon, 30 Oct 2017 11:38:27 -0500 +Subject: [PATCH] [PATCH] staging: rtl8822be: fix wrong dma unmap len + +Patch fixes splat: + +r8822be 0000:04:00.0: DMA-API: device driver frees DMA memory with different size +[device address=0x0000000078477000] [map size=4096 bytes] [unmap size=424 bytes] + +Call Trace: + debug_dma_unmap_page+0xa5/0xb0 + ? unmap_single+0x2f/0x40 + _rtl8822be_send_bcn_or_cmd_packet+0x2c5/0x300 [r8822be] + ? _rtl8822be_send_bcn_or_cmd_packet+0x2c5/0x300 [r8822be] + rtl8822b_halmac_cb_write_data_rsvd_page+0x51/0xc0 [r8822be] + _halmac_write_data_rsvd_page+0x22/0x30 [r8822be] + halmac_download_rsvd_page_88xx+0xee/0x1f0 [r8822be] + halmac_dlfw_to_mem_88xx+0x80/0x120 [r8822be] + halmac_download_firmware_88xx.part.47+0x477/0x600 [r8822be] + halmac_download_firmware_88xx+0x32/0x40 [r8822be] + rtl_halmac_dlfw+0x70/0x120 [r8822be] + rtl_halmac_init_hal+0x5f/0x1b0 [r8822be] + rtl8822be_hw_init+0x8a2/0x1040 [r8822be] + +Signed-off-by: Stanislaw Gruszka +--- + drivers/staging/rtlwifi/rtl8822be/fw.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/staging/rtlwifi/rtl8822be/fw.c b/drivers/staging/rtlwifi/rtl8822be/fw.c +index 8e24da1..a2cc548 100644 +--- a/drivers/staging/rtlwifi/rtl8822be/fw.c ++++ b/drivers/staging/rtlwifi/rtl8822be/fw.c +@@ -419,7 +419,7 @@ static bool _rtl8822be_send_bcn_or_cmd_packet(struct ieee80211_hw *hw, + dma_addr = rtlpriv->cfg->ops->get_desc( + hw, (u8 *)pbd_desc, true, HW_DESC_TXBUFF_ADDR); + +- pci_unmap_single(rtlpci->pdev, dma_addr, skb->len, ++ pci_unmap_single(rtlpci->pdev, dma_addr, pskb->len, + PCI_DMA_TODEVICE); + kfree_skb(pskb); + +-- +2.13.6 + diff --git a/0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch b/0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch deleted file mode 100644 index 858cd5a34..000000000 --- a/0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 075bb90dbb4d894938c5859e3850987238db9cd8 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 11 Aug 2017 22:30:55 +0200 -Subject: [PATCH 1/2] power: supply: max17042_battery: Add support for ACPI - enumeration - -Some x86 devices enumerate a max17047 fuel-gauge through a MAX17047 -ACPI firmware-node, add support for this. - -Signed-off-by: Hans de Goede ---- - drivers/power/supply/max17042_battery.c | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) - -diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply/max17042_battery.c -index aecaaa2b0586..b2ddb7eb69c6 100644 ---- a/drivers/power/supply/max17042_battery.c -+++ b/drivers/power/supply/max17042_battery.c -@@ -22,6 +22,7 @@ - * This driver is based on max17040_battery.c - */ - -+#include - #include - #include - #include -@@ -982,6 +983,8 @@ static int max17042_probe(struct i2c_client *client, - struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); - const struct power_supply_desc *max17042_desc = &max17042_psy_desc; - struct power_supply_config psy_cfg = {}; -+ const struct acpi_device_id *acpi_id; -+ struct device *dev = &client->dev; - struct max17042_chip *chip; - int ret; - int i; -@@ -995,7 +998,15 @@ static int max17042_probe(struct i2c_client *client, - return -ENOMEM; - - chip->client = client; -- chip->chip_type = id->driver_data; -+ if (id) { -+ chip->chip_type = id->driver_data; -+ } else { -+ acpi_id = acpi_match_device(dev->driver->acpi_match_table, dev); -+ if (!acpi_id) -+ return -ENODEV; -+ -+ chip->chip_type = acpi_id->driver_data; -+ } - chip->regmap = devm_regmap_init_i2c(client, &max17042_regmap_config); - if (IS_ERR(chip->regmap)) { - dev_err(&client->dev, "Failed to initialize regmap\n"); -@@ -1104,6 +1115,14 @@ static int max17042_resume(struct device *dev) - static SIMPLE_DEV_PM_OPS(max17042_pm_ops, max17042_suspend, - max17042_resume); - -+#ifdef CONFIG_ACPI -+static const struct acpi_device_id max17042_acpi_match[] = { -+ { "MAX17047", MAXIM_DEVICE_TYPE_MAX17047 }, -+ { } -+}; -+MODULE_DEVICE_TABLE(acpi, max17042_acpi_match); -+#endif -+ - #ifdef CONFIG_OF - static const struct of_device_id max17042_dt_match[] = { - { .compatible = "maxim,max17042" }, -@@ -1125,6 +1144,7 @@ MODULE_DEVICE_TABLE(i2c, max17042_id); - static struct i2c_driver max17042_i2c_driver = { - .driver = { - .name = "max17042", -+ .acpi_match_table = ACPI_PTR(max17042_acpi_match), - .of_match_table = of_match_ptr(max17042_dt_match), - .pm = &max17042_pm_ops, - }, --- -2.13.4 - diff --git a/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch b/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch deleted file mode 100644 index 4d2bbfaf7..000000000 --- a/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch +++ /dev/null @@ -1,204 +0,0 @@ -From aca20afc84cf8578e044c67c4949672ac98f064a Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin -Date: Tue, 28 Nov 2017 11:26:54 +0100 -Subject: [PATCH 1/5] powerpc/64s/radix: Fix 128TB-512TB virtual address - boundary case allocation - -commit 85e3f1adcb9d49300b0a943bb93f9604be375bfb upstream. - -Radix VA space allocations test addresses against mm->task_size which -is 512TB, even in cases where the intention is to limit allocation to -below 128TB. - -This results in mmap with a hint address below 128TB but address + -length above 128TB succeeding when it should fail (as hash does after -the previous patch). - -Set the high address limit to be considered up front, and base -subsequent allocation checks on that consistently. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Signed-off-by: Nicholas Piggin -Reviewed-by: Aneesh Kumar K.V -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/mm/hugetlbpage-radix.c | 26 ++++++++++++------ - arch/powerpc/mm/mmap.c | 55 ++++++++++++++++++++++--------------- - 2 files changed, 50 insertions(+), 31 deletions(-) - -diff --git a/arch/powerpc/mm/hugetlbpage-radix.c b/arch/powerpc/mm/hugetlbpage-radix.c -index a12e86395025..0a3d71aae175 100644 ---- a/arch/powerpc/mm/hugetlbpage-radix.c -+++ b/arch/powerpc/mm/hugetlbpage-radix.c -@@ -48,17 +48,28 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, - struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; - struct hstate *h = hstate_file(file); -+ int fixed = (flags & MAP_FIXED); -+ unsigned long high_limit; - struct vm_unmapped_area_info info; - -- if (unlikely(addr > mm->context.addr_limit && addr < TASK_SIZE)) -- mm->context.addr_limit = TASK_SIZE; -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) -+ high_limit = TASK_SIZE; - - if (len & ~huge_page_mask(h)) - return -EINVAL; -- if (len > mm->task_size) -+ if (len > high_limit) - return -ENOMEM; -+ if (fixed) { -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } - -- if (flags & MAP_FIXED) { -+ if (unlikely(addr > mm->context.addr_limit && -+ mm->context.addr_limit != TASK_SIZE)) -+ mm->context.addr_limit = TASK_SIZE; -+ -+ if (fixed) { - if (prepare_hugepage_range(file, addr, len)) - return -EINVAL; - return addr; -@@ -67,7 +78,7 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, - if (addr) { - addr = ALIGN(addr, huge_page_size(h)); - vma = find_vma(mm, addr); -- if (mm->task_size - len >= addr && -+ if (high_limit - len >= addr && - (!vma || addr + len <= vm_start_gap(vma))) - return addr; - } -@@ -78,12 +89,9 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, - info.flags = VM_UNMAPPED_AREA_TOPDOWN; - info.length = len; - info.low_limit = PAGE_SIZE; -- info.high_limit = current->mm->mmap_base; -+ info.high_limit = mm->mmap_base + (high_limit - DEFAULT_MAP_WINDOW); - info.align_mask = PAGE_MASK & ~huge_page_mask(h); - info.align_offset = 0; - -- if (addr > DEFAULT_MAP_WINDOW) -- info.high_limit += mm->context.addr_limit - DEFAULT_MAP_WINDOW; -- - return vm_unmapped_area(&info); - } -diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c -index 5d78b193fec4..6d476a7b5611 100644 ---- a/arch/powerpc/mm/mmap.c -+++ b/arch/powerpc/mm/mmap.c -@@ -106,22 +106,32 @@ radix__arch_get_unmapped_area(struct file *filp, unsigned long addr, - { - struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; -+ int fixed = (flags & MAP_FIXED); -+ unsigned long high_limit; - struct vm_unmapped_area_info info; - -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) -+ high_limit = TASK_SIZE; -+ -+ if (len > high_limit) -+ return -ENOMEM; -+ if (fixed) { -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } -+ - if (unlikely(addr > mm->context.addr_limit && - mm->context.addr_limit != TASK_SIZE)) - mm->context.addr_limit = TASK_SIZE; - -- if (len > mm->task_size - mmap_min_addr) -- return -ENOMEM; -- -- if (flags & MAP_FIXED) -+ if (fixed) - return addr; - - if (addr) { - addr = PAGE_ALIGN(addr); - vma = find_vma(mm, addr); -- if (mm->task_size - len >= addr && addr >= mmap_min_addr && -+ if (high_limit - len >= addr && addr >= mmap_min_addr && - (!vma || addr + len <= vm_start_gap(vma))) - return addr; - } -@@ -129,13 +139,9 @@ radix__arch_get_unmapped_area(struct file *filp, unsigned long addr, - info.flags = 0; - info.length = len; - info.low_limit = mm->mmap_base; -+ info.high_limit = high_limit; - info.align_mask = 0; - -- if (unlikely(addr > DEFAULT_MAP_WINDOW)) -- info.high_limit = mm->context.addr_limit; -- else -- info.high_limit = DEFAULT_MAP_WINDOW; -- - return vm_unmapped_area(&info); - } - -@@ -149,37 +155,42 @@ radix__arch_get_unmapped_area_topdown(struct file *filp, - struct vm_area_struct *vma; - struct mm_struct *mm = current->mm; - unsigned long addr = addr0; -+ int fixed = (flags & MAP_FIXED); -+ unsigned long high_limit; - struct vm_unmapped_area_info info; - -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) -+ high_limit = TASK_SIZE; -+ -+ if (len > high_limit) -+ return -ENOMEM; -+ if (fixed) { -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } -+ - if (unlikely(addr > mm->context.addr_limit && - mm->context.addr_limit != TASK_SIZE)) - mm->context.addr_limit = TASK_SIZE; - -- /* requested length too big for entire address space */ -- if (len > mm->task_size - mmap_min_addr) -- return -ENOMEM; -- -- if (flags & MAP_FIXED) -+ if (fixed) - return addr; - -- /* requesting a specific address */ - if (addr) { - addr = PAGE_ALIGN(addr); - vma = find_vma(mm, addr); -- if (mm->task_size - len >= addr && addr >= mmap_min_addr && -- (!vma || addr + len <= vm_start_gap(vma))) -+ if (high_limit - len >= addr && addr >= mmap_min_addr && -+ (!vma || addr + len <= vm_start_gap(vma))) - return addr; - } - - info.flags = VM_UNMAPPED_AREA_TOPDOWN; - info.length = len; - info.low_limit = max(PAGE_SIZE, mmap_min_addr); -- info.high_limit = mm->mmap_base; -+ info.high_limit = mm->mmap_base + (high_limit - DEFAULT_MAP_WINDOW); - info.align_mask = 0; - -- if (addr > DEFAULT_MAP_WINDOW) -- info.high_limit += mm->context.addr_limit - DEFAULT_MAP_WINDOW; -- - addr = vm_unmapped_area(&info); - if (!(addr & ~PAGE_MASK)) - return addr; --- -2.14.3 - diff --git a/0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch b/0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch deleted file mode 100644 index 6daecaf4d..000000000 --- a/0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 27b9d46d25c873b351757c44ce523bf0ede1d08e Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 14 Aug 2017 11:02:59 +0200 -Subject: [PATCH 2/2] power: supply: max17042_battery: Fix ACPI interrupt - issues - -On some x86/ACPI boards the DSDT defines an ACPI event handler for -the max17047 IRQ, this causes several problems: - -1) We need to share the IRQ to avoid an error getting it - -2) Even of we are willing to share, we may fail to share because some - DSDTs claim it exclusivly - -3) If we are unable to share the IRQ, or the IRQ is only listed as an - ACPI event source and not in the max1704 firmware node, then the - charge threshold IRQ (which is used to give an IRQ every 1 percent - charge change) becomes a problem, the ACPI event handler will not - update this to the next 1 percent threshold, so the IRQ keeps firing - and we get an IRQ storm pegging 1 CPU core. - - This happens despite the max17042 driver not setting the charge - threshold because Windows uses it and leaves it set on reboot. - - So if we are unable to get the IRQ we need to reprogram the - charge threshold to its disabled setting. - -This commit fixes al of the above, while at it it also makes the error -msg when being unable to get the IRQ consistent with other messages. - -Signed-off-by: Hans de Goede ---- - drivers/power/supply/max17042_battery.c | 20 +++++++++++++++----- - 1 file changed, 15 insertions(+), 5 deletions(-) - -diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply/max17042_battery.c -index b2ddb7eb69c6..18a44e4ed6ff 100644 ---- a/drivers/power/supply/max17042_battery.c -+++ b/drivers/power/supply/max17042_battery.c -@@ -1050,11 +1050,18 @@ static int max17042_probe(struct i2c_client *client, - } - - if (client->irq) { -+ unsigned int flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT; -+ -+ /* -+ * On ACPI systems the IRQ may be handled by ACPI-event code, -+ * so we need to share (if the ACPI code is willing to share). -+ */ -+ if (acpi_id) -+ flags |= IRQF_SHARED | IRQF_PROBE_SHARED; -+ - ret = devm_request_threaded_irq(&client->dev, client->irq, - NULL, -- max17042_thread_handler, -- IRQF_TRIGGER_FALLING | -- IRQF_ONESHOT, -+ max17042_thread_handler, flags, - chip->battery->desc->name, - chip); - if (!ret) { -@@ -1064,10 +1071,13 @@ static int max17042_probe(struct i2c_client *client, - max17042_set_soc_threshold(chip, 1); - } else { - client->irq = 0; -- dev_err(&client->dev, "%s(): cannot get IRQ\n", -- __func__); -+ if (ret != -EBUSY) -+ dev_err(&client->dev, "Failed to get IRQ\n"); - } - } -+ /* Not able to update the charge threshold when exceeded? -> disable */ -+ if (!client->irq) -+ regmap_write(chip->regmap, MAX17042_SALRT_Th, 0xff00); - - regmap_read(chip->regmap, MAX17042_STATUS, &val); - if (val & STATUS_POR_BIT) { --- -2.13.4 - diff --git a/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch b/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch deleted file mode 100644 index fc6b806d7..000000000 --- a/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 75c7f5172c113af1ea3cf094436c9e03191673e0 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Tue, 28 Nov 2017 11:26:55 +0100 -Subject: [PATCH 2/5] powerpc/64s/hash: Fix 512T hint detection to use >= 128T - -commit 7ece370996b694ae263025e056ad785afc1be5ab upstream. - -Currently userspace is able to request mmap() search between 128T-512T -by specifying a hint address that is greater than 128T. But that means -a hint of 128T exactly will return an address below 128T, which is -confusing and wrong. - -So fix the logic to check the hint is greater than *or equal* to 128T. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Suggested-by: Aneesh Kumar K.V -Suggested-by: Nicholas Piggin -[mpe: Split out of Nick's bigger patch] -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/mm/slice.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c -index 45f6740dd407..48a5312103a1 100644 ---- a/arch/powerpc/mm/slice.c -+++ b/arch/powerpc/mm/slice.c -@@ -419,7 +419,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - /* - * Check if we need to expland slice area. - */ -- if (unlikely(addr > mm->context.addr_limit && -+ if (unlikely(addr >= mm->context.addr_limit && - mm->context.addr_limit != TASK_SIZE)) { - mm->context.addr_limit = TASK_SIZE; - on_each_cpu(slice_flush_segments, mm, 1); -@@ -427,7 +427,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - /* - * This mmap request can allocate upt to 512TB - */ -- if (addr > DEFAULT_MAP_WINDOW) -+ if (addr >= DEFAULT_MAP_WINDOW) - high_limit = mm->context.addr_limit; - else - high_limit = DEFAULT_MAP_WINDOW; --- -2.14.3 - diff --git a/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch b/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch deleted file mode 100644 index 009068a3b..000000000 --- a/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch +++ /dev/null @@ -1,129 +0,0 @@ -From e90387a8d2227f95bf5e5b5ffd816d48a87466e2 Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin -Date: Tue, 28 Nov 2017 11:26:56 +0100 -Subject: [PATCH 3/5] powerpc/64s/hash: Fix 128TB-512TB virtual address - boundary case allocation - -commit 6a72dc038b615229a1b285829d6c8378d15c2347 upstream. - -When allocating VA space with a hint that crosses 128TB, the SLB -addr_limit variable is not expanded if addr is not > 128TB, but the -slice allocation looks at task_size, which is 512TB. This results in -slice_check_fit() incorrectly succeeding because the slice_count -truncates off bit 128 of the requested mask, so the comparison to the -available mask succeeds. - -Fix this by using mm->context.addr_limit instead of mm->task_size for -testing allocation limits. This causes such allocations to fail. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Reported-by: Florian Weimer -Signed-off-by: Nicholas Piggin -Reviewed-by: Aneesh Kumar K.V -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/mm/slice.c | 50 ++++++++++++++++++++++++------------------------- - 1 file changed, 24 insertions(+), 26 deletions(-) - -diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c -index 48a5312103a1..3889201b560c 100644 ---- a/arch/powerpc/mm/slice.c -+++ b/arch/powerpc/mm/slice.c -@@ -96,7 +96,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr, - { - struct vm_area_struct *vma; - -- if ((mm->task_size - len) < addr) -+ if ((mm->context.addr_limit - len) < addr) - return 0; - vma = find_vma(mm, addr); - return (!vma || (addr + len) <= vm_start_gap(vma)); -@@ -133,7 +133,7 @@ static void slice_mask_for_free(struct mm_struct *mm, struct slice_mask *ret) - if (!slice_low_has_vma(mm, i)) - ret->low_slices |= 1u << i; - -- if (mm->task_size <= SLICE_LOW_TOP) -+ if (mm->context.addr_limit <= SLICE_LOW_TOP) - return; - - for (i = 0; i < GET_HIGH_SLICE_INDEX(mm->context.addr_limit); i++) -@@ -412,25 +412,31 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - struct slice_mask compat_mask; - int fixed = (flags & MAP_FIXED); - int pshift = max_t(int, mmu_psize_defs[psize].shift, PAGE_SHIFT); -+ unsigned long page_size = 1UL << pshift; - struct mm_struct *mm = current->mm; - unsigned long newaddr; - unsigned long high_limit; - -- /* -- * Check if we need to expland slice area. -- */ -- if (unlikely(addr >= mm->context.addr_limit && -- mm->context.addr_limit != TASK_SIZE)) { -- mm->context.addr_limit = TASK_SIZE; -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit) -+ high_limit = TASK_SIZE; -+ -+ if (len > high_limit) -+ return -ENOMEM; -+ if (len & (page_size - 1)) -+ return -EINVAL; -+ if (fixed) { -+ if (addr & (page_size - 1)) -+ return -EINVAL; -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } -+ -+ if (high_limit > mm->context.addr_limit) { -+ mm->context.addr_limit = high_limit; - on_each_cpu(slice_flush_segments, mm, 1); - } -- /* -- * This mmap request can allocate upt to 512TB -- */ -- if (addr >= DEFAULT_MAP_WINDOW) -- high_limit = mm->context.addr_limit; -- else -- high_limit = DEFAULT_MAP_WINDOW; -+ - /* - * init different masks - */ -@@ -446,27 +452,19 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - - /* Sanity checks */ - BUG_ON(mm->task_size == 0); -+ BUG_ON(mm->context.addr_limit == 0); - VM_BUG_ON(radix_enabled()); - - slice_dbg("slice_get_unmapped_area(mm=%p, psize=%d...\n", mm, psize); - slice_dbg(" addr=%lx, len=%lx, flags=%lx, topdown=%d\n", - addr, len, flags, topdown); - -- if (len > mm->task_size) -- return -ENOMEM; -- if (len & ((1ul << pshift) - 1)) -- return -EINVAL; -- if (fixed && (addr & ((1ul << pshift) - 1))) -- return -EINVAL; -- if (fixed && addr > (mm->task_size - len)) -- return -ENOMEM; -- - /* If hint, make sure it matches our alignment restrictions */ - if (!fixed && addr) { -- addr = _ALIGN_UP(addr, 1ul << pshift); -+ addr = _ALIGN_UP(addr, page_size); - slice_dbg(" aligned addr=%lx\n", addr); - /* Ignore hint if it's too large or overlaps a VMA */ -- if (addr > mm->task_size - len || -+ if (addr > high_limit - len || - !slice_area_is_free(mm, addr, len)) - addr = 0; - } --- -2.14.3 - diff --git a/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch b/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch deleted file mode 100644 index 75d9d3241..000000000 --- a/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch +++ /dev/null @@ -1,48 +0,0 @@ -From fe50aa4374f20333d9b077bbe09397d38112b081 Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin -Date: Tue, 28 Nov 2017 11:26:57 +0100 -Subject: [PATCH 4/5] powerpc/64s/hash: Fix fork() with 512TB process address - space - -commit effc1b25088502fbd30305c79773de2d1f7470a6 upstream. - -Hash unconditionally resets the addr_limit to default (128TB) when the -mm context is initialised. If a process has > 128TB mappings when it -forks, the child will not get the 512TB addr_limit, so accesses to -valid > 128TB mappings will fail in the child. - -Fix this by only resetting the addr_limit to default if it was 0. Non -zero indicates it was duplicated from the parent (0 means exec()). - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Signed-off-by: Nicholas Piggin -Reviewed-by: Aneesh Kumar K.V -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/mm/mmu_context_book3s64.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/arch/powerpc/mm/mmu_context_book3s64.c b/arch/powerpc/mm/mmu_context_book3s64.c -index a75f63833284..bb9cdf01fc4f 100644 ---- a/arch/powerpc/mm/mmu_context_book3s64.c -+++ b/arch/powerpc/mm/mmu_context_book3s64.c -@@ -95,11 +95,11 @@ static int hash__init_new_context(struct mm_struct *mm) - return index; - - /* -- * We do switch_slb() early in fork, even before we setup the -- * mm->context.addr_limit. Default to max task size so that we copy the -- * default values to paca which will help us to handle slb miss early. -+ * In the case of exec, use the default limit, -+ * otherwise inherit it from the mm we are duplicating. - */ -- mm->context.addr_limit = DEFAULT_MAP_WINDOW_USER64; -+ if (!mm->context.addr_limit) -+ mm->context.addr_limit = DEFAULT_MAP_WINDOW_USER64; - - /* - * The old code would re-promote on fork, we don't do that when using --- -2.14.3 - diff --git a/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch b/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch deleted file mode 100644 index e7e9a4acf..000000000 --- a/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2beb551e379191c2a24e7db8c4fcc64fef4b921a Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin -Date: Tue, 28 Nov 2017 11:26:58 +0100 -Subject: [PATCH 5/5] powerpc/64s/hash: Allow MAP_FIXED allocations to cross - 128TB boundary - -commit 35602f82d0c765f991420e319c8d3a596c921eb8 upstream. - -While mapping hints with a length that cross 128TB are disallowed, -MAP_FIXED allocations that cross 128TB are allowed. These are failing -on hash (on radix they succeed). Add an additional case for fixed -mappings to expand the addr_limit when crossing 128TB. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Signed-off-by: Nicholas Piggin -Reviewed-by: Aneesh Kumar K.V -Signed-off-by: Michael Ellerman -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/mm/slice.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c -index 3889201b560c..a4f93699194b 100644 ---- a/arch/powerpc/mm/slice.c -+++ b/arch/powerpc/mm/slice.c -@@ -418,7 +418,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - unsigned long high_limit; - - high_limit = DEFAULT_MAP_WINDOW; -- if (addr >= high_limit) -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) - high_limit = TASK_SIZE; - - if (len > high_limit) --- -2.14.3 - diff --git a/0011-Input-goodix-Add-support-for-capacitive-home-button.patch b/0011-Input-goodix-Add-support-for-capacitive-home-button.patch deleted file mode 100644 index 162357c21..000000000 --- a/0011-Input-goodix-Add-support-for-capacitive-home-button.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 2a99775c336303d2efc43eab4f24b34722a28faa Mon Sep 17 00:00:00 2001 -From: "Sergei A. Trusov" -Date: Tue, 20 Jun 2017 18:08:35 +0200 -Subject: [PATCH 11/16] Input: goodix: Add support for capacitive home button - -On some x86 tablets with a Goodix touchscreen, the Windows logo on the -front is a capacitive home button. Touching this button results in a touch -with bit 4 of the first byte set, while only the lower 4 bits (0-3) are -used to indicate the number of touches. - -Report a KEY_LEFTMETA press when this happens. - -Note that the hardware might support more than one button, in which -case the "id" byte of coor_data would identify the button in question. -This is not implemented as we don't have access to hardware with -multiple buttons. - -Signed-off-by: Sergei A. Trusov -Acked-by: Bastien Nocera ---- - drivers/input/touchscreen/goodix.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c -index 240b16f3ee97..903137d9cf7d 100644 ---- a/drivers/input/touchscreen/goodix.c -+++ b/drivers/input/touchscreen/goodix.c -@@ -267,6 +267,12 @@ static void goodix_process_events(struct goodix_ts_data *ts) - if (touch_num < 0) - return; - -+ /* -+ * Bit 4 of the first byte reports the status of the capacitive -+ * Windows/Home button. -+ */ -+ input_report_key(ts->input_dev, KEY_LEFTMETA, !!(point_data[0] & BIT(4))); -+ - for (i = 0; i < touch_num; i++) - goodix_ts_report_touch(ts, - &point_data[1 + GOODIX_CONTACT_SIZE * i]); -@@ -612,6 +618,9 @@ static int goodix_request_input_dev(struct goodix_ts_data *ts) - ts->input_dev->id.product = ts->id; - ts->input_dev->id.version = ts->version; - -+ /* Capacitive Windows/Home button on some devices */ -+ input_set_capability(ts->input_dev, EV_KEY, KEY_LEFTMETA); -+ - error = input_register_device(ts->input_dev); - if (error) { - dev_err(&ts->client->dev, --- -2.13.0 - diff --git a/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch b/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch deleted file mode 100644 index 8eb41ee3f..000000000 --- a/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch +++ /dev/null @@ -1,32 +0,0 @@ -From bf3e9581e10a19b2ce77a45fe001116d269b4c7f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sun, 18 Jun 2017 12:47:38 +0200 -Subject: [PATCH 13/16] iio: accel: bmc150: Add support for BOSC0200 ACPI - device id - -Add support for the BOSC0200 ACPI device id used on some x86 tablets. -note driver_data is not set to a specific model, driver_data is not -used anyways (instead detection is done on the chip_id reg) and the -2 tablets with a BOSC0200 ACPI device id I've have 2 different chips, -one has a BMA250E, the other a BMA222E. - -Signed-off-by: Hans de Goede ---- - drivers/iio/accel/bmc150-accel-i2c.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c -index 8ca8041267ef..f85014fbaa12 100644 ---- a/drivers/iio/accel/bmc150-accel-i2c.c -+++ b/drivers/iio/accel/bmc150-accel-i2c.c -@@ -64,6 +64,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { - {"BMA250E", bma250e}, - {"BMA222E", bma222e}, - {"BMA0280", bma280}, -+ {"BOSC0200"}, - { }, - }; - MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match); --- -2.13.0 - diff --git a/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch b/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch deleted file mode 100644 index 5d7497ce1..000000000 --- a/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch +++ /dev/null @@ -1,410 +0,0 @@ -From bd0d7169342e47919f68e75d659968f02b62f84b Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 3 Mar 2017 23:48:50 +0100 -Subject: [PATCH 15/16] i2c-cht-wc: Add Intel Cherry Trail Whiskey Cove SMBUS - controller driver - -The Intel Cherry Trail Whiskey Cove PMIC does not contain a builtin -battery charger, instead boards with this PMIC use an external TI -bq24292i charger IC, which is connected to a SMBUS controller built into -the PMIC. - -This commit adds an i2c-bus driver for the PMIC's builtin SMBUS -controller. The probe function for this i2c-bus will also register an -i2c-client for the TI bq24292i charger after the i2c-bus has been -registered. - -Note that several device-properties are set on the client-device to -tell the bq24190 power-supply driver to integrate the Whiskey Cove PMIC -and e.g. use the PMIC's BC1.2 detection (through extcon) to determine -the maximum input current. - -Cc: Andy Shevchenko -Signed-off-by: Hans de Goede ---- -Changes in v2: --Various style (mostly captialization and variable name) fixes --Use device-properties instead of platform_data for the i2c_board_info ---- - drivers/i2c/busses/Kconfig | 8 + - drivers/i2c/busses/Makefile | 1 + - drivers/i2c/busses/i2c-cht-wc.c | 336 ++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 345 insertions(+) - create mode 100644 drivers/i2c/busses/i2c-cht-wc.c - -diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index 144cbadc7c72..18c96178b177 100644 ---- a/drivers/i2c/busses/Kconfig -+++ b/drivers/i2c/busses/Kconfig -@@ -187,6 +187,14 @@ config I2C_PIIX4 - This driver can also be built as a module. If so, the module - will be called i2c-piix4. - -+config I2C_CHT_WC -+ tristate "Intel Cherry Trail Whiskey Cove PMIC smbus controller" -+ depends on INTEL_SOC_PMIC_CHTWC -+ help -+ If you say yes to this option, support will be included for the -+ SMBus controller found in the Intel Cherry Trail Whiskey Cove PMIC -+ found on some Intel Cherry Trail systems. -+ - config I2C_NFORCE2 - tristate "Nvidia nForce2, nForce3 and nForce4" - depends on PCI -diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile -index 30b60855fbcd..f6443fa44f61 100644 ---- a/drivers/i2c/busses/Makefile -+++ b/drivers/i2c/busses/Makefile -@@ -12,6 +12,7 @@ obj-$(CONFIG_I2C_ALI15X3) += i2c-ali15x3.o - obj-$(CONFIG_I2C_AMD756) += i2c-amd756.o - obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o - obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o -+obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o - obj-$(CONFIG_I2C_I801) += i2c-i801.o - obj-$(CONFIG_I2C_ISCH) += i2c-isch.o - obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o -diff --git a/drivers/i2c/busses/i2c-cht-wc.c b/drivers/i2c/busses/i2c-cht-wc.c -new file mode 100644 -index 000000000000..ccf0785bcb75 ---- /dev/null -+++ b/drivers/i2c/busses/i2c-cht-wc.c -@@ -0,0 +1,336 @@ -+/* -+ * Intel CHT Whiskey Cove PMIC I2C Master driver -+ * Copyright (C) 2017 Hans de Goede -+ * -+ * Based on various non upstream patches to support the CHT Whiskey Cove PMIC: -+ * Copyright (C) 2011 - 2014 Intel Corporation. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License version -+ * 2 as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define CHT_WC_I2C_CTRL 0x5e24 -+#define CHT_WC_I2C_CTRL_WR BIT(0) -+#define CHT_WC_I2C_CTRL_RD BIT(1) -+#define CHT_WC_I2C_CLIENT_ADDR 0x5e25 -+#define CHT_WC_I2C_REG_OFFSET 0x5e26 -+#define CHT_WC_I2C_WRDATA 0x5e27 -+#define CHT_WC_I2C_RDDATA 0x5e28 -+ -+#define CHT_WC_EXTCHGRIRQ 0x6e0a -+#define CHT_WC_EXTCHGRIRQ_CLIENT_IRQ BIT(0) -+#define CHT_WC_EXTCHGRIRQ_WRITE_IRQ BIT(1) -+#define CHT_WC_EXTCHGRIRQ_READ_IRQ BIT(2) -+#define CHT_WC_EXTCHGRIRQ_NACK_IRQ BIT(3) -+#define CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK ((u8)GENMASK(3, 1)) -+#define CHT_WC_EXTCHGRIRQ_MSK 0x6e17 -+ -+struct cht_wc_i2c_adap { -+ struct i2c_adapter adapter; -+ wait_queue_head_t wait; -+ struct irq_chip irqchip; -+ struct mutex irqchip_lock; -+ struct regmap *regmap; -+ struct irq_domain *irq_domain; -+ struct i2c_client *client; -+ int client_irq; -+ u8 irq_mask; -+ u8 old_irq_mask; -+ bool nack; -+ bool done; -+}; -+ -+static irqreturn_t cht_wc_i2c_adap_thread_handler(int id, void *data) -+{ -+ struct cht_wc_i2c_adap *adap = data; -+ int ret, reg; -+ -+ /* Read IRQs */ -+ ret = regmap_read(adap->regmap, CHT_WC_EXTCHGRIRQ, ®); -+ if (ret) { -+ dev_err(&adap->adapter.dev, "Error reading extchgrirq reg\n"); -+ return IRQ_NONE; -+ } -+ -+ reg &= ~adap->irq_mask; -+ -+ /* -+ * Immediately ack IRQs, so that if new IRQs arrives while we're -+ * handling the previous ones our irq will re-trigger when we're done. -+ */ -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ, reg); -+ if (ret) -+ dev_err(&adap->adapter.dev, "Error writing extchgrirq reg\n"); -+ -+ /* -+ * Do NOT use handle_nested_irq here, the client irq handler will -+ * likely want to do i2c transfers and the i2c controller uses this -+ * interrupt handler as well, so running the client irq handler from -+ * this thread will cause things to lock up. -+ */ -+ if (reg & CHT_WC_EXTCHGRIRQ_CLIENT_IRQ) { -+ /* -+ * generic_handle_irq expects local IRQs to be disabled -+ * as normally it is called from interrupt context. -+ */ -+ local_irq_disable(); -+ generic_handle_irq(adap->client_irq); -+ local_irq_enable(); -+ } -+ -+ if (reg & CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK) { -+ adap->nack = !!(reg & CHT_WC_EXTCHGRIRQ_NACK_IRQ); -+ adap->done = true; -+ wake_up(&adap->wait); -+ } -+ -+ return IRQ_HANDLED; -+} -+ -+static u32 cht_wc_i2c_adap_master_func(struct i2c_adapter *adap) -+{ -+ /* This i2c adapter only supports SMBUS byte transfers */ -+ return I2C_FUNC_SMBUS_BYTE_DATA; -+} -+ -+static int cht_wc_i2c_adap_smbus_xfer(struct i2c_adapter *_adap, u16 addr, -+ unsigned short flags, char read_write, -+ u8 command, int size, -+ union i2c_smbus_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = i2c_get_adapdata(_adap); -+ int ret, reg; -+ -+ adap->nack = false; -+ adap->done = false; -+ -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_CLIENT_ADDR, addr); -+ if (ret) -+ return ret; -+ -+ if (read_write == I2C_SMBUS_WRITE) { -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_WRDATA, data->byte); -+ if (ret) -+ return ret; -+ } -+ -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_REG_OFFSET, command); -+ if (ret) -+ return ret; -+ -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_CTRL, -+ (read_write == I2C_SMBUS_WRITE) ? -+ CHT_WC_I2C_CTRL_WR : CHT_WC_I2C_CTRL_RD); -+ if (ret) -+ return ret; -+ -+ /* 3 second timeout, during cable plug the PMIC responds quite slow */ -+ ret = wait_event_timeout(adap->wait, adap->done, 3 * HZ); -+ if (ret == 0) -+ return -ETIMEDOUT; -+ if (adap->nack) -+ return -EIO; -+ -+ if (read_write == I2C_SMBUS_READ) { -+ ret = regmap_read(adap->regmap, CHT_WC_I2C_RDDATA, ®); -+ if (ret) -+ return ret; -+ -+ data->byte = reg; -+ } -+ -+ return 0; -+} -+ -+static const struct i2c_algorithm cht_wc_i2c_adap_algo = { -+ .functionality = cht_wc_i2c_adap_master_func, -+ .smbus_xfer = cht_wc_i2c_adap_smbus_xfer, -+}; -+ -+/**** irqchip for the client connected to the extchgr i2c adapter ****/ -+static void cht_wc_i2c_irq_lock(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ -+ mutex_lock(&adap->irqchip_lock); -+} -+ -+static void cht_wc_i2c_irq_sync_unlock(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ int ret; -+ -+ if (adap->irq_mask != adap->old_irq_mask) { -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ_MSK, -+ adap->irq_mask); -+ if (ret == 0) -+ adap->old_irq_mask = adap->irq_mask; -+ else -+ dev_err(&adap->adapter.dev, "Error writing EXTCHGRIRQ_MSK\n"); -+ } -+ -+ mutex_unlock(&adap->irqchip_lock); -+} -+ -+static void cht_wc_i2c_irq_enable(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ -+ adap->irq_mask &= ~CHT_WC_EXTCHGRIRQ_CLIENT_IRQ; -+} -+ -+static void cht_wc_i2c_irq_disable(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ -+ adap->irq_mask |= CHT_WC_EXTCHGRIRQ_CLIENT_IRQ; -+} -+ -+static const struct irq_chip cht_wc_i2c_irq_chip = { -+ .irq_bus_lock = cht_wc_i2c_irq_lock, -+ .irq_bus_sync_unlock = cht_wc_i2c_irq_sync_unlock, -+ .irq_disable = cht_wc_i2c_irq_disable, -+ .irq_enable = cht_wc_i2c_irq_enable, -+ .name = "cht_wc_ext_chrg_irq_chip", -+}; -+ -+static const struct property_entry bq24190_props[] = { -+ PROPERTY_ENTRY_STRING("extcon-name", "cht_wcove_pwrsrc"), -+ PROPERTY_ENTRY_BOOL("omit-battery-class"), -+ PROPERTY_ENTRY_BOOL("disable-reset"), -+ { } -+}; -+ -+static int cht_wc_i2c_adap_i2c_probe(struct platform_device *pdev) -+{ -+ struct intel_soc_pmic *pmic = dev_get_drvdata(pdev->dev.parent); -+ struct cht_wc_i2c_adap *adap; -+ struct i2c_board_info board_info = { -+ .type = "bq24190", -+ .addr = 0x6b, -+ .properties = bq24190_props, -+ }; -+ int ret, irq; -+ -+ irq = platform_get_irq(pdev, 0); -+ if (irq < 0) { -+ dev_err(&pdev->dev, "Error missing irq resource\n"); -+ return -EINVAL; -+ } -+ -+ adap = devm_kzalloc(&pdev->dev, sizeof(*adap), GFP_KERNEL); -+ if (!adap) -+ return -ENOMEM; -+ -+ init_waitqueue_head(&adap->wait); -+ mutex_init(&adap->irqchip_lock); -+ adap->irqchip = cht_wc_i2c_irq_chip; -+ adap->regmap = pmic->regmap; -+ adap->adapter.owner = THIS_MODULE; -+ adap->adapter.class = I2C_CLASS_HWMON; -+ adap->adapter.algo = &cht_wc_i2c_adap_algo; -+ strlcpy(adap->adapter.name, "PMIC I2C Adapter", -+ sizeof(adap->adapter.name)); -+ adap->adapter.dev.parent = &pdev->dev; -+ -+ /* Clear and activate i2c-adapter interrupts, disable client IRQ */ -+ adap->old_irq_mask = adap->irq_mask = ~CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK; -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ, ~adap->irq_mask); -+ if (ret) -+ return ret; -+ -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ_MSK, adap->irq_mask); -+ if (ret) -+ return ret; -+ -+ /* Alloc and register client IRQ */ -+ adap->irq_domain = irq_domain_add_linear(pdev->dev.of_node, 1, -+ &irq_domain_simple_ops, NULL); -+ if (!adap->irq_domain) -+ return -ENOMEM; -+ -+ adap->client_irq = irq_create_mapping(adap->irq_domain, 0); -+ if (!adap->client_irq) { -+ ret = -ENOMEM; -+ goto remove_irq_domain; -+ } -+ -+ irq_set_chip_data(adap->client_irq, adap); -+ irq_set_chip_and_handler(adap->client_irq, &adap->irqchip, -+ handle_simple_irq); -+ -+ ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, -+ cht_wc_i2c_adap_thread_handler, -+ IRQF_ONESHOT, "PMIC I2C Adapter", adap); -+ if (ret) -+ goto remove_irq_domain; -+ -+ i2c_set_adapdata(&adap->adapter, adap); -+ ret = i2c_add_adapter(&adap->adapter); -+ if (ret) -+ goto remove_irq_domain; -+ -+ board_info.irq = adap->client_irq; -+ adap->client = i2c_new_device(&adap->adapter, &board_info); -+ if (!adap->client) { -+ ret = -ENOMEM; -+ goto del_adapter; -+ } -+ -+ platform_set_drvdata(pdev, adap); -+ return 0; -+ -+del_adapter: -+ i2c_del_adapter(&adap->adapter); -+remove_irq_domain: -+ irq_domain_remove(adap->irq_domain); -+ return ret; -+} -+ -+static int cht_wc_i2c_adap_i2c_remove(struct platform_device *pdev) -+{ -+ struct cht_wc_i2c_adap *adap = platform_get_drvdata(pdev); -+ -+ i2c_unregister_device(adap->client); -+ i2c_del_adapter(&adap->adapter); -+ irq_domain_remove(adap->irq_domain); -+ -+ return 0; -+} -+ -+static struct platform_device_id cht_wc_i2c_adap_id_table[] = { -+ { .name = "cht_wcove_ext_chgr" }, -+ {}, -+}; -+MODULE_DEVICE_TABLE(platform, cht_wc_i2c_adap_id_table); -+ -+struct platform_driver cht_wc_i2c_adap_driver = { -+ .probe = cht_wc_i2c_adap_i2c_probe, -+ .remove = cht_wc_i2c_adap_i2c_remove, -+ .driver = { -+ .name = "cht_wcove_ext_chgr", -+ }, -+ .id_table = cht_wc_i2c_adap_id_table, -+}; -+module_platform_driver(cht_wc_i2c_adap_driver); -+ -+MODULE_DESCRIPTION("Intel CHT Whiskey Cove PMIC I2C Master driver"); -+MODULE_AUTHOR("Hans de Goede "); -+MODULE_LICENSE("GPL"); --- -2.13.0 - diff --git a/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch b/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch deleted file mode 100644 index ca079af42..000000000 --- a/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch +++ /dev/null @@ -1,296 +0,0 @@ -From patchwork Mon Nov 6 12:31:12 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [1/2] kvm: vmx: Reinstate support for CPUs without virtual NMI -From: Paolo Bonzini -X-Patchwork-Id: 10043403 -Message-Id: <1509971473-74491-2-git-send-email-pbonzini@redhat.com> -To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org -Cc: rkrcmar@redhat.com, stable@vger.kernel.org -Date: Mon, 6 Nov 2017 13:31:12 +0100 - -This is more or less a revert of commit 2c82878b0cb3 ("KVM: VMX: require -virtual NMI support", 2017-03-27); it turns out that Core 2 Duo machines -only had virtual NMIs in some SKUs. - -The revert is not trivial because in the meanwhile there have been several -fixes to nested NMI injection. Therefore, the entire vNMI state is moved -to struct loaded_vmcs. - -Another change compared to before the patch is a simplification here: - - if (unlikely(!cpu_has_virtual_nmis() && vmx->soft_vnmi_blocked && - !(is_guest_mode(vcpu) && nested_cpu_has_virtual_nmis( - get_vmcs12(vcpu))))) { - -The final condition here is always true (because nested_cpu_has_virtual_nmis -is always false) and is removed. - -Fixes: 2c82878b0cb38fd516fd612c67852a6bbf282003 -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1490803 -Cc: stable@vger.kernel.org -Signed-off-by: Paolo Bonzini ---- - arch/x86/kvm/vmx.c | 150 +++++++++++++++++++++++++++++++++++++---------------- - 1 file changed, 106 insertions(+), 44 deletions(-) - -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index e6c8ffa84968..d6b3b12ae1e2 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -202,6 +202,10 @@ struct loaded_vmcs { - bool nmi_known_unmasked; - unsigned long vmcs_host_cr3; /* May not match real cr3 */ - unsigned long vmcs_host_cr4; /* May not match real cr4 */ -+ /* Support for vnmi-less CPUs */ -+ int soft_vnmi_blocked; -+ ktime_t entry_time; -+ s64 vnmi_blocked_time; - struct list_head loaded_vmcss_on_cpu_link; - }; - -@@ -1291,6 +1295,11 @@ static inline bool cpu_has_vmx_invpcid(void) - SECONDARY_EXEC_ENABLE_INVPCID; - } - -+static inline bool cpu_has_virtual_nmis(void) -+{ -+ return vmcs_config.pin_based_exec_ctrl & PIN_BASED_VIRTUAL_NMIS; -+} -+ - static inline bool cpu_has_vmx_wbinvd_exit(void) - { - return vmcs_config.cpu_based_2nd_exec_ctrl & -@@ -1348,11 +1357,6 @@ static inline bool nested_cpu_has2(struct vmcs12 *vmcs12, u32 bit) - (vmcs12->secondary_vm_exec_control & bit); - } - --static inline bool nested_cpu_has_virtual_nmis(struct vmcs12 *vmcs12) --{ -- return vmcs12->pin_based_vm_exec_control & PIN_BASED_VIRTUAL_NMIS; --} -- - static inline bool nested_cpu_has_preemption_timer(struct vmcs12 *vmcs12) - { - return vmcs12->pin_based_vm_exec_control & -@@ -3712,9 +3716,9 @@ static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf) - &_vmexit_control) < 0) - return -EIO; - -- min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING | -- PIN_BASED_VIRTUAL_NMIS; -- opt = PIN_BASED_POSTED_INTR | PIN_BASED_VMX_PREEMPTION_TIMER; -+ min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING; -+ opt = PIN_BASED_VIRTUAL_NMIS | PIN_BASED_POSTED_INTR | -+ PIN_BASED_VMX_PREEMPTION_TIMER; - if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_PINBASED_CTLS, - &_pin_based_exec_control) < 0) - return -EIO; -@@ -5669,7 +5673,8 @@ static void enable_irq_window(struct kvm_vcpu *vcpu) - - static void enable_nmi_window(struct kvm_vcpu *vcpu) - { -- if (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) { -+ if (!cpu_has_virtual_nmis() || -+ vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) { - enable_irq_window(vcpu); - return; - } -@@ -5709,6 +5714,19 @@ static void vmx_inject_nmi(struct kvm_vcpu *vcpu) - { - struct vcpu_vmx *vmx = to_vmx(vcpu); - -+ if (!cpu_has_virtual_nmis()) { -+ /* -+ * Tracking the NMI-blocked state in software is built upon -+ * finding the next open IRQ window. This, in turn, depends on -+ * well-behaving guests: They have to keep IRQs disabled at -+ * least as long as the NMI handler runs. Otherwise we may -+ * cause NMI nesting, maybe breaking the guest. But as this is -+ * highly unlikely, we can live with the residual risk. -+ */ -+ vmx->loaded_vmcs->soft_vnmi_blocked = 1; -+ vmx->loaded_vmcs->vnmi_blocked_time = 0; -+ } -+ - ++vcpu->stat.nmi_injections; - vmx->loaded_vmcs->nmi_known_unmasked = false; - -@@ -5727,6 +5745,8 @@ static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu) - struct vcpu_vmx *vmx = to_vmx(vcpu); - bool masked; - -+ if (!cpu_has_virtual_nmis()) -+ return vmx->loaded_vmcs->soft_vnmi_blocked; - if (vmx->loaded_vmcs->nmi_known_unmasked) - return false; - masked = vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_NMI; -@@ -5738,13 +5758,20 @@ static void vmx_set_nmi_mask(struct kvm_vcpu *vcpu, bool masked) - { - struct vcpu_vmx *vmx = to_vmx(vcpu); - -- vmx->loaded_vmcs->nmi_known_unmasked = !masked; -- if (masked) -- vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -- GUEST_INTR_STATE_NMI); -- else -- vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO, -- GUEST_INTR_STATE_NMI); -+ if (!cpu_has_virtual_nmis()) { -+ if (vmx->loaded_vmcs->soft_vnmi_blocked != masked) { -+ vmx->loaded_vmcs->soft_vnmi_blocked = masked; -+ vmx->loaded_vmcs->vnmi_blocked_time = 0; -+ } -+ } else { -+ vmx->loaded_vmcs->nmi_known_unmasked = !masked; -+ if (masked) -+ vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -+ GUEST_INTR_STATE_NMI); -+ else -+ vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO, -+ GUEST_INTR_STATE_NMI); -+ } - } - - static int vmx_nmi_allowed(struct kvm_vcpu *vcpu) -@@ -5752,6 +5779,10 @@ static int vmx_nmi_allowed(struct kvm_vcpu *vcpu) - if (to_vmx(vcpu)->nested.nested_run_pending) - return 0; - -+ if (!cpu_has_virtual_nmis() && -+ to_vmx(vcpu)->loaded_vmcs->soft_vnmi_blocked) -+ return 0; -+ - return !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & - (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_STI - | GUEST_INTR_STATE_NMI)); -@@ -6479,6 +6510,7 @@ static int handle_ept_violation(struct kvm_vcpu *vcpu) - * AAK134, BY25. - */ - if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) && -+ cpu_has_virtual_nmis() && - (exit_qualification & INTR_INFO_UNBLOCK_NMI)) - vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, GUEST_INTR_STATE_NMI); - -@@ -6965,7 +6997,7 @@ static struct loaded_vmcs *nested_get_current_vmcs02(struct vcpu_vmx *vmx) - } - - /* Create a new VMCS */ -- item = kmalloc(sizeof(struct vmcs02_list), GFP_KERNEL); -+ item = kzalloc(sizeof(struct vmcs02_list), GFP_KERNEL); - if (!item) - return NULL; - item->vmcs02.vmcs = alloc_vmcs(); -@@ -7982,6 +8014,7 @@ static int handle_pml_full(struct kvm_vcpu *vcpu) - * "blocked by NMI" bit has to be set before next VM entry. - */ - if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) && -+ cpu_has_virtual_nmis() && - (exit_qualification & INTR_INFO_UNBLOCK_NMI)) - vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, - GUEST_INTR_STATE_NMI); -@@ -8826,6 +8859,25 @@ static int vmx_handle_exit(struct kvm_vcpu *vcpu) - return 0; - } - -+ if (unlikely(!cpu_has_virtual_nmis() && -+ vmx->loaded_vmcs->soft_vnmi_blocked)) { -+ if (vmx_interrupt_allowed(vcpu)) { -+ vmx->loaded_vmcs->soft_vnmi_blocked = 0; -+ } else if (vmx->loaded_vmcs->vnmi_blocked_time > 1000000000LL && -+ vcpu->arch.nmi_pending) { -+ /* -+ * This CPU don't support us in finding the end of an -+ * NMI-blocked window if the guest runs with IRQs -+ * disabled. So we pull the trigger after 1 s of -+ * futile waiting, but inform the user about this. -+ */ -+ printk(KERN_WARNING "%s: Breaking out of NMI-blocked " -+ "state on VCPU %d after 1 s timeout\n", -+ __func__, vcpu->vcpu_id); -+ vmx->loaded_vmcs->soft_vnmi_blocked = 0; -+ } -+ } -+ - if (exit_reason < kvm_vmx_max_exit_handlers - && kvm_vmx_exit_handlers[exit_reason]) - return kvm_vmx_exit_handlers[exit_reason](vcpu); -@@ -9108,33 +9160,38 @@ static void vmx_recover_nmi_blocking(struct vcpu_vmx *vmx) - - idtv_info_valid = vmx->idt_vectoring_info & VECTORING_INFO_VALID_MASK; - -- if (vmx->loaded_vmcs->nmi_known_unmasked) -- return; -- /* -- * Can't use vmx->exit_intr_info since we're not sure what -- * the exit reason is. -- */ -- exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO); -- unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0; -- vector = exit_intr_info & INTR_INFO_VECTOR_MASK; -- /* -- * SDM 3: 27.7.1.2 (September 2008) -- * Re-set bit "block by NMI" before VM entry if vmexit caused by -- * a guest IRET fault. -- * SDM 3: 23.2.2 (September 2008) -- * Bit 12 is undefined in any of the following cases: -- * If the VM exit sets the valid bit in the IDT-vectoring -- * information field. -- * If the VM exit is due to a double fault. -- */ -- if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi && -- vector != DF_VECTOR && !idtv_info_valid) -- vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -- GUEST_INTR_STATE_NMI); -- else -- vmx->loaded_vmcs->nmi_known_unmasked = -- !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) -- & GUEST_INTR_STATE_NMI); -+ if (cpu_has_virtual_nmis()) { -+ if (vmx->loaded_vmcs->nmi_known_unmasked) -+ return; -+ /* -+ * Can't use vmx->exit_intr_info since we're not sure what -+ * the exit reason is. -+ */ -+ exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO); -+ unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0; -+ vector = exit_intr_info & INTR_INFO_VECTOR_MASK; -+ /* -+ * SDM 3: 27.7.1.2 (September 2008) -+ * Re-set bit "block by NMI" before VM entry if vmexit caused by -+ * a guest IRET fault. -+ * SDM 3: 23.2.2 (September 2008) -+ * Bit 12 is undefined in any of the following cases: -+ * If the VM exit sets the valid bit in the IDT-vectoring -+ * information field. -+ * If the VM exit is due to a double fault. -+ */ -+ if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi && -+ vector != DF_VECTOR && !idtv_info_valid) -+ vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -+ GUEST_INTR_STATE_NMI); -+ else -+ vmx->loaded_vmcs->nmi_known_unmasked = -+ !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) -+ & GUEST_INTR_STATE_NMI); -+ } else if (unlikely(vmx->loaded_vmcs->soft_vnmi_blocked)) -+ vmx->loaded_vmcs->vnmi_blocked_time += -+ ktime_to_ns(ktime_sub(ktime_get(), -+ vmx->loaded_vmcs->entry_time)); - } - - static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu, -@@ -9251,6 +9308,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) - struct vcpu_vmx *vmx = to_vmx(vcpu); - unsigned long debugctlmsr, cr3, cr4; - -+ /* Record the guest's net vcpu time for enforced NMI injections. */ -+ if (unlikely(!cpu_has_virtual_nmis() && -+ vmx->loaded_vmcs->soft_vnmi_blocked)) -+ vmx->loaded_vmcs->entry_time = ktime_get(); -+ - /* Don't enter VMX if guest state is invalid, let the exit handler - start emulation until we arrive back to a valid state */ - if (vmx->emulation_required) diff --git a/1-3-net-set-tb--fast_sk_family.patch b/1-3-net-set-tb--fast_sk_family.patch deleted file mode 100644 index dbe5250ab..000000000 --- a/1-3-net-set-tb--fast_sk_family.patch +++ /dev/null @@ -1,50 +0,0 @@ -From patchwork Mon Sep 18 16:28:55 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [1/3] net: set tb->fast_sk_family -X-Patchwork-Submitter: Josef Bacik -X-Patchwork-Id: 815031 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <1505752137-15522-2-git-send-email-jbacik@fb.com> -To: davem@davemloft.net, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, crobinso@redhat.com, - labbott@redhat.com, kernel-team@fb.com -Cc: Josef Bacik , stable@vger.kernel.org -Date: Mon, 18 Sep 2017 12:28:55 -0400 -From: josef@toxicpanda.com -List-Id: - -From: Josef Bacik - -We need to set the tb->fast_sk_family properly so we can use the proper -comparison function for all subsequent reuseport bind requests. - -Cc: stable@vger.kernel.org -Fixes: 637bc8bbe6c0 ("inet: reset tb->fastreuseport when adding a reuseport sk") -Reported-and-tested-by: Cole Robinson -Signed-off-by: Josef Bacik ---- - net/ipv4/inet_connection_sock.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c -index b9c64b40a83a..f87f4805e244 100644 ---- a/net/ipv4/inet_connection_sock.c -+++ b/net/ipv4/inet_connection_sock.c -@@ -328,6 +328,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) - tb->fastuid = uid; - tb->fast_rcv_saddr = sk->sk_rcv_saddr; - tb->fast_ipv6_only = ipv6_only_sock(sk); -+ tb->fast_sk_family = sk->sk_family; - #if IS_ENABLED(CONFIG_IPV6) - tb->fast_v6_rcv_saddr = sk->sk_v6_rcv_saddr; - #endif -@@ -354,6 +355,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) - tb->fastuid = uid; - tb->fast_rcv_saddr = sk->sk_rcv_saddr; - tb->fast_ipv6_only = ipv6_only_sock(sk); -+ tb->fast_sk_family = sk->sk_family; - #if IS_ENABLED(CONFIG_IPV6) - tb->fast_v6_rcv_saddr = sk->sk_v6_rcv_saddr; - #endif diff --git a/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch b/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch deleted file mode 100644 index 3d64361df..000000000 --- a/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch +++ /dev/null @@ -1,44 +0,0 @@ -From patchwork Mon Sep 18 16:28:56 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [2/3] net: use inet6_rcv_saddr to compare sockets -X-Patchwork-Submitter: Josef Bacik -X-Patchwork-Id: 815028 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <1505752137-15522-3-git-send-email-jbacik@fb.com> -To: davem@davemloft.net, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, crobinso@redhat.com, - labbott@redhat.com, kernel-team@fb.com -Cc: Josef Bacik , stable@vger.kernel.org -Date: Mon, 18 Sep 2017 12:28:56 -0400 -From: josef@toxicpanda.com -List-Id: - -From: Josef Bacik - -In ipv6_rcv_saddr_equal() we need to use inet6_rcv_saddr(sk) for the -ipv6 compare with the fast socket information to make sure we're doing -the proper comparisons. - -Cc: stable@vger.kernel.org -Fixes: 637bc8bbe6c0 ("inet: reset tb->fastreuseport when adding a reuseport sk") -Reported-and-tested-by: Cole Robinson -Signed-off-by: Josef Bacik ---- - net/ipv4/inet_connection_sock.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c -index f87f4805e244..a1bf30438bc5 100644 ---- a/net/ipv4/inet_connection_sock.c -+++ b/net/ipv4/inet_connection_sock.c -@@ -266,7 +266,7 @@ static inline int sk_reuseport_match(struct inet_bind_bucket *tb, - #if IS_ENABLED(CONFIG_IPV6) - if (tb->fast_sk_family == AF_INET6) - return ipv6_rcv_saddr_equal(&tb->fast_v6_rcv_saddr, -- &sk->sk_v6_rcv_saddr, -+ inet6_rcv_saddr(sk), - tb->fast_rcv_saddr, - sk->sk_rcv_saddr, - tb->fast_ipv6_only, diff --git a/3-3-inet-fix-improper-empty-comparison.patch b/3-3-inet-fix-improper-empty-comparison.patch deleted file mode 100644 index 421a235cb..000000000 --- a/3-3-inet-fix-improper-empty-comparison.patch +++ /dev/null @@ -1,53 +0,0 @@ -From patchwork Mon Sep 18 16:28:57 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [3/3] inet: fix improper empty comparison -X-Patchwork-Submitter: Josef Bacik -X-Patchwork-Id: 815029 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <1505752137-15522-4-git-send-email-jbacik@fb.com> -To: davem@davemloft.net, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, crobinso@redhat.com, - labbott@redhat.com, kernel-team@fb.com -Cc: Josef Bacik , stable@vger.kernel.org -Date: Mon, 18 Sep 2017 12:28:57 -0400 -From: josef@toxicpanda.com -List-Id: - -From: Josef Bacik - -When doing my reuseport rework I screwed up and changed a - -if (hlist_empty(&tb->owners)) - -to - -if (!hlist_empty(&tb->owners)) - -This is obviously bad as all of the reuseport/reuse logic was reversed, -which caused weird problems like allowing an ipv4 bind conflict if we -opened an ipv4 only socket on a port followed by an ipv6 only socket on -the same port. - -Cc: stable@vger.kernel.org -Fixes: b9470c27607b ("inet: kill smallest_size and smallest_port") -Reported-by: Cole Robinson -Signed-off-by: Josef Bacik ---- - net/ipv4/inet_connection_sock.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c -index a1bf30438bc5..c039c937ba90 100644 ---- a/net/ipv4/inet_connection_sock.c -+++ b/net/ipv4/inet_connection_sock.c -@@ -321,7 +321,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) - goto fail_unlock; - } - success: -- if (!hlist_empty(&tb->owners)) { -+ if (hlist_empty(&tb->owners)) { - tb->fastreuse = reuse; - if (sk->sk_reuseport) { - tb->fastreuseport = FASTREUSEPORT_ANY; diff --git a/CVE-2017-16538.patch b/CVE-2017-16538.patch deleted file mode 100644 index e9cf4b054..000000000 --- a/CVE-2017-16538.patch +++ /dev/null @@ -1,166 +0,0 @@ -From patchwork Tue Sep 26 21:10:20 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [1/2] media: dvb-usb-v2: lmedm04: Improve logic checking of warm - start. -From: Malcolm Priestley -X-Patchwork-Id: 44566 -Message-Id: <20170926211021.11036-1-tvboxspy@gmail.com> -To: linux-media@vger.kernel.org -Cc: Andrey Konovalov , - Malcolm Priestley -Date: Tue, 26 Sep 2017 22:10:20 +0100 - -Warm start has no check as whether a genuine device has -connected and proceeds to next execution path. - -Check device should read 0x47 at offset of 2 on USB descriptor read -and it is the amount requested of 6 bytes. - -Fix for -kasan: CONFIG_KASAN_INLINE enabled -kasan: GPF could be caused by NULL-ptr deref or user memory access as - -Reported-by: Andrey Konovalov -Signed-off-by: Malcolm Priestley ---- - drivers/media/usb/dvb-usb-v2/lmedm04.c | 26 ++++++++++++++++++-------- - 1 file changed, 18 insertions(+), 8 deletions(-) - -diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c b/drivers/media/usb/dvb-usb-v2/lmedm04.c -index 5e320fa4a795..992f2011a6ba 100644 ---- a/drivers/media/usb/dvb-usb-v2/lmedm04.c -+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c -@@ -494,18 +494,23 @@ static int lme2510_pid_filter(struct dvb_usb_adapter *adap, int index, u16 pid, - - static int lme2510_return_status(struct dvb_usb_device *d) - { -- int ret = 0; -+ int ret; - u8 *data; - -- data = kzalloc(10, GFP_KERNEL); -+ data = kzalloc(6, GFP_KERNEL); - if (!data) - return -ENOMEM; - -- ret |= usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), -- 0x06, 0x80, 0x0302, 0x00, data, 0x0006, 200); -- info("Firmware Status: %x (%x)", ret , data[2]); -+ ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), -+ 0x06, 0x80, 0x0302, 0x00, -+ data, 0x6, 200); -+ if (ret != 6) -+ ret = -EINVAL; -+ else -+ ret = data[2]; -+ -+ info("Firmware Status: %6ph", data); - -- ret = (ret < 0) ? -ENODEV : data[2]; - kfree(data); - return ret; - } -@@ -1189,6 +1194,7 @@ static int lme2510_get_adapter_count(struct dvb_usb_device *d) - static int lme2510_identify_state(struct dvb_usb_device *d, const char **name) - { - struct lme2510_state *st = d->priv; -+ int status; - - usb_reset_configuration(d->udev); - -@@ -1197,12 +1203,16 @@ static int lme2510_identify_state(struct dvb_usb_device *d, const char **name) - - st->dvb_usb_lme2510_firmware = dvb_usb_lme2510_firmware; - -- if (lme2510_return_status(d) == 0x44) { -+ status = lme2510_return_status(d); -+ if (status == 0x44) { - *name = lme_firmware_switch(d, 0); - return COLD; - } - -- return 0; -+ if (status != 0x47) -+ return -EINVAL; -+ -+ return WARM; - } - - static int lme2510_get_stream_config(struct dvb_frontend *fe, u8 *ts_type, -From patchwork Tue Sep 26 21:10:21 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [2/2] media: dvb-usb-v2: lmedm04: move ts2020 attach to - dm04_lme2510_tuner -From: Malcolm Priestley -X-Patchwork-Id: 44567 -Message-Id: <20170926211021.11036-2-tvboxspy@gmail.com> -To: linux-media@vger.kernel.org -Cc: Andrey Konovalov , - Malcolm Priestley -Date: Tue, 26 Sep 2017 22:10:21 +0100 - -When the tuner was split from m88rs2000 the attach function is in wrong -place. - -Move to dm04_lme2510_tuner to trap errors on failure and removing -a call to lme_coldreset. - -Prevents driver starting up without any tuner connected. - -Fixes to trap for ts2020 fail. -LME2510(C): FE Found M88RS2000 -ts2020: probe of 0-0060 failed with error -11 -... -LME2510(C): TUN Found RS2000 tuner -kasan: CONFIG_KASAN_INLINE enabled -kasan: GPF could be caused by NULL-ptr deref or user memory access -general protection fault: 0000 [#1] PREEMPT SMP KASAN - -Reported-by: Andrey Konovalov -Signed-off-by: Malcolm Priestley -Tested-by: Andrey Konovalov ---- - drivers/media/usb/dvb-usb-v2/lmedm04.c | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) - -diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c b/drivers/media/usb/dvb-usb-v2/lmedm04.c -index 992f2011a6ba..be26c029546b 100644 ---- a/drivers/media/usb/dvb-usb-v2/lmedm04.c -+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c -@@ -1076,8 +1076,6 @@ static int dm04_lme2510_frontend_attach(struct dvb_usb_adapter *adap) - - if (adap->fe[0]) { - info("FE Found M88RS2000"); -- dvb_attach(ts2020_attach, adap->fe[0], &ts2020_config, -- &d->i2c_adap); - st->i2c_tuner_gate_w = 5; - st->i2c_tuner_gate_r = 5; - st->i2c_tuner_addr = 0x60; -@@ -1143,17 +1141,18 @@ static int dm04_lme2510_tuner(struct dvb_usb_adapter *adap) - ret = st->tuner_config; - break; - case TUNER_RS2000: -- ret = st->tuner_config; -+ if (dvb_attach(ts2020_attach, adap->fe[0], -+ &ts2020_config, &d->i2c_adap)) -+ ret = st->tuner_config; - break; - default: - break; - } - -- if (ret) -+ if (ret) { - info("TUN Found %s tuner", tun_msg[ret]); -- else { -- info("TUN No tuner found --- resetting device"); -- lme_coldreset(d); -+ } else { -+ info("TUN No tuner found"); - return -ENODEV; - } - diff --git a/CVE-2017-7477.patch b/CVE-2017-7477.patch deleted file mode 100644 index 6405614cc..000000000 --- a/CVE-2017-7477.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 4d6fa57b4dab0d77f4d8e9d9c73d1e63f6fe8fee Mon Sep 17 00:00:00 2001 -From: "Jason A. Donenfeld" -Date: Fri, 21 Apr 2017 23:14:48 +0200 -Subject: macsec: avoid heap overflow in skb_to_sgvec - -While this may appear as a humdrum one line change, it's actually quite -important. An sk_buff stores data in three places: - -1. A linear chunk of allocated memory in skb->data. This is the easiest - one to work with, but it precludes using scatterdata since the memory - must be linear. -2. The array skb_shinfo(skb)->frags, which is of maximum length - MAX_SKB_FRAGS. This is nice for scattergather, since these fragments - can point to different pages. -3. skb_shinfo(skb)->frag_list, which is a pointer to another sk_buff, - which in turn can have data in either (1) or (2). - -The first two are rather easy to deal with, since they're of a fixed -maximum length, while the third one is not, since there can be -potentially limitless chains of fragments. Fortunately dealing with -frag_list is opt-in for drivers, so drivers don't actually have to deal -with this mess. For whatever reason, macsec decided it wanted pain, and -so it explicitly specified NETIF_F_FRAGLIST. - -Because dealing with (1), (2), and (3) is insane, most users of sk_buff -doing any sort of crypto or paging operation calls a convenient function -called skb_to_sgvec (which happens to be recursive if (3) is in use!). -This takes a sk_buff as input, and writes into its output pointer an -array of scattergather list items. Sometimes people like to declare a -fixed size scattergather list on the stack; othertimes people like to -allocate a fixed size scattergather list on the heap. However, if you're -doing it in a fixed-size fashion, you really shouldn't be using -NETIF_F_FRAGLIST too (unless you're also ensuring the sk_buff and its -frag_list children arent't shared and then you check the number of -fragments in total required.) - -Macsec specifically does this: - - size += sizeof(struct scatterlist) * (MAX_SKB_FRAGS + 1); - tmp = kmalloc(size, GFP_ATOMIC); - *sg = (struct scatterlist *)(tmp + sg_offset); - ... - sg_init_table(sg, MAX_SKB_FRAGS + 1); - skb_to_sgvec(skb, sg, 0, skb->len); - -Specifying MAX_SKB_FRAGS + 1 is the right answer usually, but not if you're -using NETIF_F_FRAGLIST, in which case the call to skb_to_sgvec will -overflow the heap, and disaster ensues. - -Signed-off-by: Jason A. Donenfeld -Cc: stable@vger.kernel.org -Cc: security@kernel.org -Signed-off-by: David S. Miller ---- - drivers/net/macsec.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c -index ff0a5ed..dbab05a 100644 ---- a/drivers/net/macsec.c -+++ b/drivers/net/macsec.c -@@ -2716,7 +2716,7 @@ static netdev_tx_t macsec_start_xmit(struct sk_buff *skb, - } - - #define MACSEC_FEATURES \ -- (NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST) -+ (NETIF_F_SG | NETIF_F_HIGHDMA) - static struct lock_class_key macsec_netdev_addr_lock_key; - - static int macsec_dev_init(struct net_device *dev) --- -cgit v1.1 - diff --git a/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch b/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch deleted file mode 100644 index d6a8e6a52..000000000 --- a/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ef14a4bf0910d06c7e202552914028d4956809cb Mon Sep 17 00:00:00 2001 -From: Andrew Duggan -Date: Tue, 17 Oct 2017 18:37:36 -0700 -Subject: [PATCH] HID: rmi: Check that a device is a RMI device before calling - RMI functions - -The hid-rmi driver may handle non rmi devices on composite USB devices. -Callbacks need to make sure that the current device is a RMI device before -calling RMI specific functions. Most callbacks already have this check, but -this patch adds checks to the remaining callbacks. - -Reported-by: Hendrik Langer -Tested-by: Hendrik Langer -Reviewed-by: Benjamin Tissoires -Signed-off-by: Andrew Duggan -Signed-off-by: Jiri Kosina ---- - drivers/hid/hid-rmi.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c -index ef241d66562e..0f43c4292685 100644 ---- a/drivers/hid/hid-rmi.c -+++ b/drivers/hid/hid-rmi.c -@@ -368,6 +368,11 @@ static int rmi_check_sanity(struct hid_device *hdev, u8 *data, int size) - static int rmi_raw_event(struct hid_device *hdev, - struct hid_report *report, u8 *data, int size) - { -+ struct rmi_data *hdata = hid_get_drvdata(hdev); -+ -+ if (!(hdata->device_flags & RMI_DEVICE)) -+ return 0; -+ - size = rmi_check_sanity(hdev, data, size); - if (size < 2) - return 0; -@@ -713,9 +718,11 @@ static void rmi_remove(struct hid_device *hdev) - { - struct rmi_data *hdata = hid_get_drvdata(hdev); - -- clear_bit(RMI_STARTED, &hdata->flags); -- cancel_work_sync(&hdata->reset_work); -- rmi_unregister_transport_device(&hdata->xport); -+ if (hdata->device_flags & RMI_DEVICE) { -+ clear_bit(RMI_STARTED, &hdata->flags); -+ cancel_work_sync(&hdata->reset_work); -+ rmi_unregister_transport_device(&hdata->xport); -+ } - - hid_hw_stop(hdev); - } --- -2.14.3 - diff --git a/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch b/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch deleted file mode 100644 index 81e858fd0..000000000 --- a/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch +++ /dev/null @@ -1,51 +0,0 @@ -From patchwork Thu Sep 28 20:07:19 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Subject: Input: synaptics - Disable kernel tracking on SMBus devices -From: Andrew Duggan -X-Patchwork-Id: 9976729 -Message-Id: <1506629239-5940-1-git-send-email-aduggan@synaptics.com> -To: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org -Cc: Andrew Duggan , - Dmitry Torokhov , - Benjamin Tissoires , - =?UTF-8?q?Kamil=20P=C3=A1ral?= -Date: Thu, 28 Sep 2017 13:07:19 -0700 - -In certain situations kernel tracking seems to be getting confused -and incorrectly reporting the slot of a contact. On example is when -the user does a three finger click or tap and then places two fingers -on the touchpad in the same area. The kernel tracking code seems to -continue to think that there are three contacts on the touchpad and -incorrectly alternates the slot of one of the contacts. The result that -is the input subsystem reports a stream of button press and release -events as the reported slot changes. - -Kernel tracking was originally enabled to prevent cursor jumps, but it -is unclear how much of an issue kernel jumps actually are. This patch -simply disabled kernel tracking for now. - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1482640 - -Signed-off-by: Andrew Duggan -Tested-by: Kamil Páral -Acked-by: Benjamin Tissoires ---- - drivers/input/mouse/synaptics.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 5af0b7d..ee5466a 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -1709,8 +1709,7 @@ static int synaptics_create_intertouch(struct psmouse *psmouse, - .sensor_pdata = { - .sensor_type = rmi_sensor_touchpad, - .axis_align.flip_y = true, -- /* to prevent cursors jumps: */ -- .kernel_tracking = true, -+ .kernel_tracking = false, - .topbuttonpad = topbuttonpad, - }, - .f30_data = { diff --git a/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch b/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch deleted file mode 100644 index 771ca7950..000000000 --- a/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch +++ /dev/null @@ -1,77 +0,0 @@ -From patchwork Mon Oct 2 18:31:24 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: ahci: don't ignore result code of ahci_reset_controller() -X-Patchwork-Submitter: Ard Biesheuvel -X-Patchwork-Id: 820637 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <20171002183124.17003-1-ard.biesheuvel@linaro.org> -To: linux-ide@vger.kernel.org, tj@kernel.org -Cc: graeme.gregory@linaro.org, leif.lindholm@linaro.org, - daniel.thompson@Linaro.org, Ard Biesheuvel -Date: Mon, 2 Oct 2017 19:31:24 +0100 -From: Ard Biesheuvel -List-Id: - -ahci_pci_reset_controller() calls ahci_reset_controller(), which may -fail, but ignores the result code and always returns success. This -may result in failures like below - - ahci 0000:02:00.0: version 3.0 - ahci 0000:02:00.0: enabling device (0000 -> 0003) - ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled - ahci 0000:02:00.0: controller reset failed (0xffffffff) - ahci 0000:02:00.0: failed to stop engine (-5) - ... repeated many times ... - ahci 0000:02:00.0: failed to stop engine (-5) - Unable to handle kernel paging request at virtual address ffff0000093f9018 - ... - PC is at ahci_stop_engine+0x5c/0xd8 [libahci] - LR is at ahci_deinit_port.constprop.12+0x1c/0xc0 [libahci] - ... - [] ahci_stop_engine+0x5c/0xd8 [libahci] - [] ahci_deinit_port.constprop.12+0x1c/0xc0 [libahci] - [] ahci_init_controller+0x80/0x168 [libahci] - [] ahci_pci_init_controller+0x60/0x68 [ahci] - [] ahci_init_one+0x75c/0xd88 [ahci] - [] local_pci_probe+0x3c/0xb8 - [] pci_device_probe+0x138/0x170 - [] driver_probe_device+0x2dc/0x458 - [] __driver_attach+0x114/0x118 - [] bus_for_each_dev+0x60/0xa0 - [] driver_attach+0x20/0x28 - [] bus_add_driver+0x1f0/0x2a8 - [] driver_register+0x60/0xf8 - [] __pci_register_driver+0x3c/0x48 - [] ahci_pci_driver_init+0x1c/0x1000 [ahci] - [] do_one_initcall+0x38/0x120 - -where an obvious hardware level failure results in an unnecessary 15 second -delay and a subsequent crash. - -So record the result code of ahci_reset_controller() and relay it, rather -than ignoring it. - -Signed-off-by: Ard Biesheuvel ---- - drivers/ata/ahci.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c -index 5a5fd0b404eb..649e799df9c1 100644 ---- a/drivers/ata/ahci.c -+++ b/drivers/ata/ahci.c -@@ -621,8 +621,11 @@ static void ahci_pci_save_initial_config(struct pci_dev *pdev, - static int ahci_pci_reset_controller(struct ata_host *host) - { - struct pci_dev *pdev = to_pci_dev(host->dev); -+ int rc; - -- ahci_reset_controller(host); -+ rc = ahci_reset_controller(host); -+ if (rc) -+ return rc; - - if (pdev->vendor == PCI_VENDOR_ID_INTEL) { - struct ahci_host_priv *hpriv = host->private_data; diff --git a/allwinner-net-emac.patch b/allwinner-net-emac.patch index f5d680bde..6d4f11d90 100644 --- a/allwinner-net-emac.patch +++ b/allwinner-net-emac.patch @@ -1,18 +1,575 @@ -From 83e18f0ad4793ea83e03cb8e608bdd2939e76d78 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 4 Sep 2017 13:04:34 +0100 -Subject: [PATCH 1/4] Revert "net: stmmac: sun8i: Remove the compatibles" +From 1b28a544627ddce094091946f06f99bc41d0098f Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 24 Oct 2017 19:57:12 +0200 +Subject: [PATCH 01/11] net: stmmac: snps, dwmac-mdio MDIOs are automatically + registered -This reverts commit ad4540cc5aa3dccb8e1e12458d57f8c40fae5a1c. +stmmac bindings docs said that its mdio node must have +compatible = "snps,dwmac-mdio"; +Since dwmac-sun8i does not have any good reasons to not doing it, all +their MDIO node must have it. + +Since these compatible is automatically registered, dwmac-sun8i compatible +does not need to be in need_mdio_ids. + +Signed-off-by: Corentin Labbe +--- + drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +index 6383695004a5..645ef949705f 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c ++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +@@ -318,10 +318,6 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data *plat, + bool mdio = true; + static const struct of_device_id need_mdio_ids[] = { + { .compatible = "snps,dwc-qos-ethernet-4.10" }, +- { .compatible = "allwinner,sun8i-a83t-emac" }, +- { .compatible = "allwinner,sun8i-h3-emac" }, +- { .compatible = "allwinner,sun8i-v3s-emac" }, +- { .compatible = "allwinner,sun50i-a64-emac" }, + {}, + }; + +-- +2.14.3 + +From 9a5b1d9a7614b022512744896d889e76f687e90a Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 24 Oct 2017 19:57:13 +0200 +Subject: [PATCH 02/11] net: stmmac: dwmac-sun8i: Handle integrated/external + MDIOs + +The Allwinner H3 SoC have two distinct MDIO bus, only one could be +active at the same time. +The selection of the active MDIO bus are done via some bits in the EMAC +register of the system controller. + +This patch implement this MDIO switch via a custom MDIO-mux. + +Signed-off-by: Corentin Labbe +Reviewed-by: Andrew Lunn +--- + drivers/net/ethernet/stmicro/stmmac/Kconfig | 1 + + drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 353 ++++++++++++++-------- + 2 files changed, 224 insertions(+), 130 deletions(-) + +diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig +index 97035766c291..e28c0d2c58e9 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/Kconfig ++++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig +@@ -159,6 +159,7 @@ config DWMAC_SUN8I + tristate "Allwinner sun8i GMAC support" + default ARCH_SUNXI + depends on OF && (ARCH_SUNXI || COMPILE_TEST) ++ select MDIO_BUS_MUX + ---help--- + Support for Allwinner H3 A83T A64 EMAC ethernet controllers. + +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +index 39c2122a4f26..b3eb344bb158 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -41,14 +42,14 @@ + * This value is used for disabling properly EMAC + * and used as a good starting value in case of the + * boot process(uboot) leave some stuff. +- * @internal_phy: Does the MAC embed an internal PHY ++ * @soc_has_internal_phy: Does the MAC embed an internal PHY + * @support_mii: Does the MAC handle MII + * @support_rmii: Does the MAC handle RMII + * @support_rgmii: Does the MAC handle RGMII + */ + struct emac_variant { + u32 default_syscon_value; +- int internal_phy; ++ bool soc_has_internal_phy; + bool support_mii; + bool support_rmii; + bool support_rgmii; +@@ -61,7 +62,8 @@ struct emac_variant { + * @rst_ephy: reference to the optional EPHY reset for the internal PHY + * @variant: reference to the current board variant + * @regmap: regmap for using the syscon +- * @use_internal_phy: Does the current PHY choice imply using the internal PHY ++ * @internal_phy_powered: Does the internal PHY is enabled ++ * @mux_handle: Internal pointer used by mdio-mux lib + */ + struct sunxi_priv_data { + struct clk *tx_clk; +@@ -70,12 +72,13 @@ struct sunxi_priv_data { + struct reset_control *rst_ephy; + const struct emac_variant *variant; + struct regmap *regmap; +- bool use_internal_phy; ++ bool internal_phy_powered; ++ void *mux_handle; + }; + + static const struct emac_variant emac_variant_h3 = { + .default_syscon_value = 0x58000, +- .internal_phy = PHY_INTERFACE_MODE_MII, ++ .soc_has_internal_phy = true, + .support_mii = true, + .support_rmii = true, + .support_rgmii = true +@@ -83,20 +86,20 @@ static const struct emac_variant emac_variant_h3 = { + + static const struct emac_variant emac_variant_v3s = { + .default_syscon_value = 0x38000, +- .internal_phy = PHY_INTERFACE_MODE_MII, ++ .soc_has_internal_phy = true, + .support_mii = true + }; + + static const struct emac_variant emac_variant_a83t = { + .default_syscon_value = 0, +- .internal_phy = 0, ++ .soc_has_internal_phy = false, + .support_mii = true, + .support_rgmii = true + }; + + static const struct emac_variant emac_variant_a64 = { + .default_syscon_value = 0, +- .internal_phy = 0, ++ .soc_has_internal_phy = false, + .support_mii = true, + .support_rmii = true, + .support_rgmii = true +@@ -195,6 +198,9 @@ static const struct emac_variant emac_variant_a64 = { + #define H3_EPHY_LED_POL BIT(17) /* 1: active low, 0: active high */ + #define H3_EPHY_SHUTDOWN BIT(16) /* 1: shutdown, 0: power up */ + #define H3_EPHY_SELECT BIT(15) /* 1: internal PHY, 0: external PHY */ ++#define H3_EPHY_MUX_MASK (H3_EPHY_SHUTDOWN | H3_EPHY_SELECT) ++#define DWMAC_SUN8I_MDIO_MUX_INTERNAL_ID 1 ++#define DWMAC_SUN8I_MDIO_MUX_EXTERNAL_ID 2 + + /* H3/A64 specific bits */ + #define SYSCON_RMII_EN BIT(13) /* 1: enable RMII (overrides EPIT) */ +@@ -634,6 +640,159 @@ static int sun8i_dwmac_reset(struct stmmac_priv *priv) + return 0; + } + ++/* Search in mdio-mux node for internal PHY node and get its clk/reset */ ++static int get_ephy_nodes(struct stmmac_priv *priv) ++{ ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ struct device_node *mdio_mux, *iphynode; ++ struct device_node *mdio_internal; ++ int ret; ++ ++ mdio_mux = of_get_child_by_name(priv->device->of_node, "mdio-mux"); ++ if (!mdio_mux) { ++ dev_err(priv->device, "Cannot get mdio-mux node\n"); ++ return -ENODEV; ++ } ++ ++ mdio_internal = of_find_compatible_node(mdio_mux, NULL, ++ "allwinner,sun8i-h3-mdio-internal"); ++ if (!mdio_internal) { ++ dev_err(priv->device, "Cannot get internal_mdio node\n"); ++ return -ENODEV; ++ } ++ ++ /* Seek for internal PHY */ ++ for_each_child_of_node(mdio_internal, iphynode) { ++ gmac->ephy_clk = of_clk_get(iphynode, 0); ++ if (IS_ERR(gmac->ephy_clk)) ++ continue; ++ gmac->rst_ephy = of_reset_control_get_exclusive(iphynode, NULL); ++ if (IS_ERR(gmac->rst_ephy)) { ++ ret = PTR_ERR(gmac->rst_ephy); ++ if (ret == -EPROBE_DEFER) ++ return ret; ++ continue; ++ } ++ dev_info(priv->device, "Found internal PHY node\n"); ++ return 0; ++ } ++ return -ENODEV; ++} ++ ++static int sun8i_dwmac_power_internal_phy(struct stmmac_priv *priv) ++{ ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ int ret; ++ ++ if (gmac->internal_phy_powered) { ++ dev_warn(priv->device, "Internal PHY already powered\n"); ++ return 0; ++ } ++ ++ dev_info(priv->device, "Powering internal PHY\n"); ++ ret = clk_prepare_enable(gmac->ephy_clk); ++ if (ret) { ++ dev_err(priv->device, "Cannot enable internal PHY\n"); ++ return ret; ++ } ++ ++ /* Make sure the EPHY is properly reseted, as U-Boot may leave ++ * it at deasserted state, and thus it may fail to reset EMAC. ++ */ ++ reset_control_assert(gmac->rst_ephy); ++ ++ ret = reset_control_deassert(gmac->rst_ephy); ++ if (ret) { ++ dev_err(priv->device, "Cannot deassert internal phy\n"); ++ clk_disable_unprepare(gmac->ephy_clk); ++ return ret; ++ } ++ ++ gmac->internal_phy_powered = true; ++ ++ return 0; ++} ++ ++static int sun8i_dwmac_unpower_internal_phy(struct sunxi_priv_data *gmac) ++{ ++ if (!gmac->internal_phy_powered) ++ return 0; ++ ++ clk_disable_unprepare(gmac->ephy_clk); ++ reset_control_assert(gmac->rst_ephy); ++ gmac->internal_phy_powered = false; ++ return 0; ++} ++ ++/* MDIO multiplexing switch function ++ * This function is called by the mdio-mux layer when it thinks the mdio bus ++ * multiplexer needs to switch. ++ * 'current_child' is the current value of the mux register ++ * 'desired_child' is the value of the 'reg' property of the target child MDIO ++ * node. ++ * The first time this function is called, current_child == -1. ++ * If current_child == desired_child, then the mux is already set to the ++ * correct bus. ++ */ ++static int mdio_mux_syscon_switch_fn(int current_child, int desired_child, ++ void *data) ++{ ++ struct stmmac_priv *priv = data; ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ u32 reg, val; ++ int ret = 0; ++ bool need_power_ephy = false; ++ ++ if (current_child ^ desired_child) { ++ regmap_read(gmac->regmap, SYSCON_EMAC_REG, ®); ++ switch (desired_child) { ++ case DWMAC_SUN8I_MDIO_MUX_INTERNAL_ID: ++ dev_info(priv->device, "Switch mux to internal PHY"); ++ val = (reg & ~H3_EPHY_MUX_MASK) | H3_EPHY_SELECT; ++ ++ need_power_ephy = true; ++ break; ++ case DWMAC_SUN8I_MDIO_MUX_EXTERNAL_ID: ++ dev_info(priv->device, "Switch mux to external PHY"); ++ val = (reg & ~H3_EPHY_MUX_MASK) | H3_EPHY_SHUTDOWN; ++ need_power_ephy = false; ++ break; ++ default: ++ dev_err(priv->device, "Invalid child ID %x\n", ++ desired_child); ++ return -EINVAL; ++ } ++ regmap_write(gmac->regmap, SYSCON_EMAC_REG, val); ++ if (need_power_ephy) { ++ ret = sun8i_dwmac_power_internal_phy(priv); ++ if (ret) ++ return ret; ++ } else { ++ sun8i_dwmac_unpower_internal_phy(gmac); ++ } ++ /* After changing syscon value, the MAC need reset or it will ++ * use the last value (and so the last PHY set). ++ */ ++ ret = sun8i_dwmac_reset(priv); ++ } ++ return ret; ++} ++ ++static int sun8i_dwmac_register_mdio_mux(struct stmmac_priv *priv) ++{ ++ int ret; ++ struct device_node *mdio_mux; ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ ++ mdio_mux = of_get_child_by_name(priv->device->of_node, "mdio-mux"); ++ if (!mdio_mux) ++ return -ENODEV; ++ ++ ret = mdio_mux_init(priv->device, mdio_mux, mdio_mux_syscon_switch_fn, ++ &gmac->mux_handle, priv, priv->mii); ++ return ret; ++} ++ + static int sun8i_dwmac_set_syscon(struct stmmac_priv *priv) + { + struct sunxi_priv_data *gmac = priv->plat->bsp_priv; +@@ -648,35 +807,25 @@ static int sun8i_dwmac_set_syscon(struct stmmac_priv *priv) + "Current syscon value is not the default %x (expect %x)\n", + val, reg); + +- if (gmac->variant->internal_phy) { +- if (!gmac->use_internal_phy) { +- /* switch to external PHY interface */ +- reg &= ~H3_EPHY_SELECT; +- } else { +- reg |= H3_EPHY_SELECT; +- reg &= ~H3_EPHY_SHUTDOWN; +- dev_dbg(priv->device, "Select internal_phy %x\n", reg); +- +- if (of_property_read_bool(priv->plat->phy_node, +- "allwinner,leds-active-low")) +- reg |= H3_EPHY_LED_POL; +- else +- reg &= ~H3_EPHY_LED_POL; +- +- /* Force EPHY xtal frequency to 24MHz. */ +- reg |= H3_EPHY_CLK_SEL; +- +- ret = of_mdio_parse_addr(priv->device, +- priv->plat->phy_node); +- if (ret < 0) { +- dev_err(priv->device, "Could not parse MDIO addr\n"); +- return ret; +- } +- /* of_mdio_parse_addr returns a valid (0 ~ 31) PHY +- * address. No need to mask it again. +- */ +- reg |= ret << H3_EPHY_ADDR_SHIFT; ++ if (gmac->variant->soc_has_internal_phy) { ++ if (of_property_read_bool(priv->plat->phy_node, ++ "allwinner,leds-active-low")) ++ reg |= H3_EPHY_LED_POL; ++ else ++ reg &= ~H3_EPHY_LED_POL; ++ ++ /* Force EPHY xtal frequency to 24MHz. */ ++ reg |= H3_EPHY_CLK_SEL; ++ ++ ret = of_mdio_parse_addr(priv->device, priv->plat->phy_node); ++ if (ret < 0) { ++ dev_err(priv->device, "Could not parse MDIO addr\n"); ++ return ret; + } ++ /* of_mdio_parse_addr returns a valid (0 ~ 31) PHY ++ * address. No need to mask it again. ++ */ ++ reg |= 1 << H3_EPHY_ADDR_SHIFT; + } + + if (!of_property_read_u32(node, "allwinner,tx-delay-ps", &val)) { +@@ -746,81 +895,21 @@ static void sun8i_dwmac_unset_syscon(struct sunxi_priv_data *gmac) + regmap_write(gmac->regmap, SYSCON_EMAC_REG, reg); + } + +-static int sun8i_dwmac_power_internal_phy(struct stmmac_priv *priv) ++static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) + { +- struct sunxi_priv_data *gmac = priv->plat->bsp_priv; +- int ret; +- +- if (!gmac->use_internal_phy) +- return 0; +- +- ret = clk_prepare_enable(gmac->ephy_clk); +- if (ret) { +- dev_err(priv->device, "Cannot enable ephy\n"); +- return ret; +- } +- +- /* Make sure the EPHY is properly reseted, as U-Boot may leave +- * it at deasserted state, and thus it may fail to reset EMAC. +- */ +- reset_control_assert(gmac->rst_ephy); ++ struct sunxi_priv_data *gmac = priv; + +- ret = reset_control_deassert(gmac->rst_ephy); +- if (ret) { +- dev_err(priv->device, "Cannot deassert ephy\n"); +- clk_disable_unprepare(gmac->ephy_clk); +- return ret; ++ if (gmac->variant->soc_has_internal_phy) { ++ /* sun8i_dwmac_exit could be called with mdiomux uninit */ ++ if (gmac->mux_handle) ++ mdio_mux_uninit(gmac->mux_handle); ++ if (gmac->internal_phy_powered) ++ sun8i_dwmac_unpower_internal_phy(gmac); + } + +- return 0; +-} +- +-static int sun8i_dwmac_unpower_internal_phy(struct sunxi_priv_data *gmac) +-{ +- if (!gmac->use_internal_phy) +- return 0; +- +- clk_disable_unprepare(gmac->ephy_clk); +- reset_control_assert(gmac->rst_ephy); +- return 0; +-} +- +-/* sun8i_power_phy() - Activate the PHY: +- * In case of error, no need to call sun8i_unpower_phy(), +- * it will be called anyway by sun8i_dwmac_exit() +- */ +-static int sun8i_power_phy(struct stmmac_priv *priv) +-{ +- int ret; +- +- ret = sun8i_dwmac_power_internal_phy(priv); +- if (ret) +- return ret; +- +- ret = sun8i_dwmac_set_syscon(priv); +- if (ret) +- return ret; +- +- /* After changing syscon value, the MAC need reset or it will use +- * the last value (and so the last PHY set. +- */ +- ret = sun8i_dwmac_reset(priv); +- if (ret) +- return ret; +- return 0; +-} +- +-static void sun8i_unpower_phy(struct sunxi_priv_data *gmac) +-{ + sun8i_dwmac_unset_syscon(gmac); +- sun8i_dwmac_unpower_internal_phy(gmac); +-} +- +-static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) +-{ +- struct sunxi_priv_data *gmac = priv; + +- sun8i_unpower_phy(gmac); ++ reset_control_put(gmac->rst_ephy); + + clk_disable_unprepare(gmac->tx_clk); + +@@ -849,7 +938,7 @@ static struct mac_device_info *sun8i_dwmac_setup(void *ppriv) + if (!mac) + return NULL; + +- ret = sun8i_power_phy(priv); ++ ret = sun8i_dwmac_set_syscon(priv); + if (ret) + return NULL; + +@@ -889,6 +978,8 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) + struct sunxi_priv_data *gmac; + struct device *dev = &pdev->dev; + int ret; ++ struct stmmac_priv *priv; ++ struct net_device *ndev; + + ret = stmmac_get_platform_resources(pdev, &stmmac_res); + if (ret) +@@ -932,29 +1023,6 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) + } + + plat_dat->interface = of_get_phy_mode(dev->of_node); +- if (plat_dat->interface == gmac->variant->internal_phy) { +- dev_info(&pdev->dev, "Will use internal PHY\n"); +- gmac->use_internal_phy = true; +- gmac->ephy_clk = of_clk_get(plat_dat->phy_node, 0); +- if (IS_ERR(gmac->ephy_clk)) { +- ret = PTR_ERR(gmac->ephy_clk); +- dev_err(&pdev->dev, "Cannot get EPHY clock: %d\n", ret); +- return -EINVAL; +- } +- +- gmac->rst_ephy = of_reset_control_get(plat_dat->phy_node, NULL); +- if (IS_ERR(gmac->rst_ephy)) { +- ret = PTR_ERR(gmac->rst_ephy); +- if (ret == -EPROBE_DEFER) +- return ret; +- dev_err(&pdev->dev, "No EPHY reset control found %d\n", +- ret); +- return -EINVAL; +- } +- } else { +- dev_info(&pdev->dev, "Will use external PHY\n"); +- gmac->use_internal_phy = false; +- } + + /* platform data specifying hardware features and callbacks. + * hardware features were copied from Allwinner drivers. +@@ -973,9 +1041,34 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) + + ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); + if (ret) +- sun8i_dwmac_exit(pdev, plat_dat->bsp_priv); ++ goto dwmac_exit; ++ ++ ndev = dev_get_drvdata(&pdev->dev); ++ priv = netdev_priv(ndev); ++ /* The mux must be registered after parent MDIO ++ * so after stmmac_dvr_probe() ++ */ ++ if (gmac->variant->soc_has_internal_phy) { ++ ret = get_ephy_nodes(priv); ++ if (ret) ++ goto dwmac_exit; ++ ret = sun8i_dwmac_register_mdio_mux(priv); ++ if (ret) { ++ dev_err(&pdev->dev, "Failed to register mux\n"); ++ goto dwmac_mux; ++ } ++ } else { ++ ret = sun8i_dwmac_reset(priv); ++ if (ret) ++ goto dwmac_exit; ++ } + + return ret; ++dwmac_mux: ++ sun8i_dwmac_unset_syscon(gmac); ++dwmac_exit: ++ sun8i_dwmac_exit(pdev, plat_dat->bsp_priv); ++return ret; + } + + static const struct of_device_id sun8i_dwmac_match[] = { +-- +2.14.3 + +From f58f11ebb67468471ed8f232c576f348dd1a32b1 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 24 Oct 2017 19:57:14 +0200 +Subject: [PATCH 03/11] net: stmmac: sun8i: Restore the compatibles + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore compatibles about dwmac-sun8i +This reverts commit ad4540cc5aa3 ("net: stmmac: sun8i: Remove the compatibles") + +Signed-off-by: Corentin Labbe --- drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -index 39c2122a4f26..fffd6d5fc907 100644 +index b3eb344bb158..e5ff734d4f9b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -@@ -979,6 +979,14 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) +@@ -1072,6 +1072,14 @@ return ret; } static const struct of_device_id sun8i_dwmac_match[] = { @@ -28,26 +585,483 @@ index 39c2122a4f26..fffd6d5fc907 100644 }; MODULE_DEVICE_TABLE(of, sun8i_dwmac_match); -- -2.13.5 +2.14.3 -From fa4788d88903c1e535d034c3dd3fcd386685a02c Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 4 Sep 2017 13:04:41 +0100 -Subject: [PATCH 2/4] Revert "arm: dts: sunxi: Revert EMAC changes" +From 54678636d98cd9625f342c831015e302642bf104 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 31 Oct 2017 09:19:08 +0100 +Subject: [PATCH 04/11] dt-bindings: net: Restore sun8i dwmac binding -This reverts commit fe45174b72aead678da581bab9e9a37c9b26a070. +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore dt-bindings documentation about dwmac-sun8i +This reverts commit 8aa33ec2f481 ("dt-bindings: net: Revert sun8i dwmac binding") + +Signed-off-by: Corentin Labbe +Acked-by: Rob Herring +Acked-by: Florian Fainelli --- - arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 9 ++++++++ - arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 19 +++++++++++++++++ - arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts | 7 ++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 8 +++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 8 +++++++ + .../devicetree/bindings/net/dwmac-sun8i.txt | 84 ++++++++++++++++++++++ + 1 file changed, 84 insertions(+) + create mode 100644 Documentation/devicetree/bindings/net/dwmac-sun8i.txt + +diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +new file mode 100644 +index 000000000000..725f3b187886 +--- /dev/null ++++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +@@ -0,0 +1,84 @@ ++* Allwinner sun8i GMAC ethernet controller ++ ++This device is a platform glue layer for stmmac. ++Please see stmmac.txt for the other unchanged properties. ++ ++Required properties: ++- compatible: should be one of the following string: ++ "allwinner,sun8i-a83t-emac" ++ "allwinner,sun8i-h3-emac" ++ "allwinner,sun8i-v3s-emac" ++ "allwinner,sun50i-a64-emac" ++- reg: address and length of the register for the device. ++- interrupts: interrupt for the device ++- interrupt-names: should be "macirq" ++- clocks: A phandle to the reference clock for this device ++- clock-names: should be "stmmaceth" ++- resets: A phandle to the reset control for this device ++- reset-names: should be "stmmaceth" ++- phy-mode: See ethernet.txt ++- phy-handle: See ethernet.txt ++- #address-cells: shall be 1 ++- #size-cells: shall be 0 ++- syscon: A phandle to the syscon of the SoC with one of the following ++ compatible string: ++ - allwinner,sun8i-h3-system-controller ++ - allwinner,sun8i-v3s-system-controller ++ - allwinner,sun50i-a64-system-controller ++ - allwinner,sun8i-a83t-system-controller ++ ++Optional properties: ++- allwinner,tx-delay-ps: TX clock delay chain value in ps. Range value is 0-700. Default is 0) ++- allwinner,rx-delay-ps: RX clock delay chain value in ps. Range value is 0-3100. Default is 0) ++Both delay properties need to be a multiple of 100. They control the delay for ++external PHY. ++ ++Optional properties for the following compatibles: ++ - "allwinner,sun8i-h3-emac", ++ - "allwinner,sun8i-v3s-emac": ++- allwinner,leds-active-low: EPHY LEDs are active low ++ ++Required child node of emac: ++- mdio bus node: should be named mdio ++ ++Required properties of the mdio node: ++- #address-cells: shall be 1 ++- #size-cells: shall be 0 ++ ++The device node referenced by "phy" or "phy-handle" should be a child node ++of the mdio node. See phy.txt for the generic PHY bindings. ++ ++Required properties of the phy node with the following compatibles: ++ - "allwinner,sun8i-h3-emac", ++ - "allwinner,sun8i-v3s-emac": ++- clocks: a phandle to the reference clock for the EPHY ++- resets: a phandle to the reset control for the EPHY ++ ++Example: ++ ++emac: ethernet@1c0b000 { ++ compatible = "allwinner,sun8i-h3-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c0b000 0x104>; ++ interrupts = ; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ phy-handle = <&int_mii_phy>; ++ phy-mode = "mii"; ++ allwinner,leds-active-low; ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++}; +-- +2.14.3 + +From 227bc8c6bfad58c32c7a6c3bbc13d99eb6d266c0 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 31 Oct 2017 09:19:09 +0100 +Subject: [PATCH 05/11] dt-bindings: net: dwmac-sun8i: update documentation + about integrated PHY + +This patch add documentation about the MDIO switch used on sun8i-h3-emac +for integrated PHY. + +Signed-off-by: Corentin Labbe +Acked-by: Florian Fainelli +Reviewed-by: Andrew Lunn +--- + .../devicetree/bindings/net/dwmac-sun8i.txt | 147 +++++++++++++++++++-- + 1 file changed, 135 insertions(+), 12 deletions(-) + +diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +index 725f3b187886..3d6d5fa0c4d5 100644 +--- a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt ++++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +@@ -4,18 +4,18 @@ This device is a platform glue layer for stmmac. + Please see stmmac.txt for the other unchanged properties. + + Required properties: +-- compatible: should be one of the following string: ++- compatible: must be one of the following string: + "allwinner,sun8i-a83t-emac" + "allwinner,sun8i-h3-emac" + "allwinner,sun8i-v3s-emac" + "allwinner,sun50i-a64-emac" + - reg: address and length of the register for the device. + - interrupts: interrupt for the device +-- interrupt-names: should be "macirq" ++- interrupt-names: must be "macirq" + - clocks: A phandle to the reference clock for this device +-- clock-names: should be "stmmaceth" ++- clock-names: must be "stmmaceth" + - resets: A phandle to the reset control for this device +-- reset-names: should be "stmmaceth" ++- reset-names: must be "stmmaceth" + - phy-mode: See ethernet.txt + - phy-handle: See ethernet.txt + - #address-cells: shall be 1 +@@ -39,23 +39,42 @@ Optional properties for the following compatibles: + - allwinner,leds-active-low: EPHY LEDs are active low + + Required child node of emac: +-- mdio bus node: should be named mdio ++- mdio bus node: should be named mdio with compatible "snps,dwmac-mdio" + + Required properties of the mdio node: + - #address-cells: shall be 1 + - #size-cells: shall be 0 + +-The device node referenced by "phy" or "phy-handle" should be a child node ++The device node referenced by "phy" or "phy-handle" must be a child node + of the mdio node. See phy.txt for the generic PHY bindings. + +-Required properties of the phy node with the following compatibles: ++The following compatibles require that the emac node have a mdio-mux child ++node called "mdio-mux": ++ - "allwinner,sun8i-h3-emac" ++ - "allwinner,sun8i-v3s-emac": ++Required properties for the mdio-mux node: ++ - compatible = "allwinner,sun8i-h3-mdio-mux" ++ - mdio-parent-bus: a phandle to EMAC mdio ++ - one child mdio for the integrated mdio with the compatible ++ "allwinner,sun8i-h3-mdio-internal" ++ - one child mdio for the external mdio if present (V3s have none) ++Required properties for the mdio-mux children node: ++ - reg: 1 for internal MDIO bus, 2 for external MDIO bus ++ ++The following compatibles require a PHY node representing the integrated ++PHY, under the integrated MDIO bus node if an mdio-mux node is used: + - "allwinner,sun8i-h3-emac", + - "allwinner,sun8i-v3s-emac": ++ ++Additional information regarding generic multiplexer properties can be found ++at Documentation/devicetree/bindings/net/mdio-mux.txt ++ ++Required properties of the integrated phy node: + - clocks: a phandle to the reference clock for the EPHY + - resets: a phandle to the reset control for the EPHY ++- Must be a child of the integrated mdio + +-Example: +- ++Example with integrated PHY: + emac: ethernet@1c0b000 { + compatible = "allwinner,sun8i-h3-emac"; + syscon = <&syscon>; +@@ -72,13 +91,117 @@ emac: ethernet@1c0b000 { + phy-handle = <&int_mii_phy>; + phy-mode = "mii"; + allwinner,leds-active-low; ++ ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "snps,dwmac-mdio"; ++ }; ++ ++ mdio-mux { ++ compatible = "mdio-mux", "allwinner,sun8i-h3-mdio-mux"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mdio-parent-bus = <&mdio>; ++ ++ int_mdio: mdio@1 { ++ compatible = "allwinner,sun8i-h3-mdio-internal"; ++ reg = <1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ phy-is-integrated; ++ }; ++ }; ++ ext_mdio: mdio@2 { ++ reg = <2>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ }; ++ }; ++}; ++ ++Example with external PHY: ++emac: ethernet@1c0b000 { ++ compatible = "allwinner,sun8i-h3-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c0b000 0x104>; ++ interrupts = ; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ phy-handle = <&ext_rgmii_phy>; ++ phy-mode = "rgmii"; ++ allwinner,leds-active-low; ++ ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "snps,dwmac-mdio"; ++ }; ++ ++ mdio-mux { ++ compatible = "allwinner,sun8i-h3-mdio-mux"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mdio-parent-bus = <&mdio>; ++ ++ int_mdio: mdio@1 { ++ compatible = "allwinner,sun8i-h3-mdio-internal"; ++ reg = <1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++ ext_mdio: mdio@2 { ++ reg = <2>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ext_rgmii_phy: ethernet-phy@1 { ++ reg = <1>; ++ }; ++ }: ++ }; ++}; ++ ++Example with SoC without integrated PHY ++ ++emac: ethernet@1c0b000 { ++ compatible = "allwinner,sun8i-a83t-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c0b000 0x104>; ++ interrupts = ; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ phy-handle = <&ext_rgmii_phy>; ++ phy-mode = "rgmii"; ++ + mdio: mdio { ++ compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; +- int_mii_phy: ethernet-phy@1 { ++ ext_rgmii_phy: ethernet-phy@1 { + reg = <1>; +- clocks = <&ccu CLK_BUS_EPHY>; +- resets = <&ccu RST_BUS_EPHY>; + }; + }; + }; +-- +2.14.3 + +From 1de79efa35a1130c7a085f62b9d9b666d79b9a89 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 1 Nov 2017 14:04:20 +0000 +Subject: [PATCH 06/11] arm: dts: sunxi: h3/h5: Restore EMAC changes + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore sunxi-h3-h5.dtsi +This reverts partially commit fe45174b72ae ("arm: dts: sunxi: Revert EMAC changes") + +Signed-off-by: Corentin Labbe +Acked-by: Florian Fainelli +--- + arch/arm/boot/dts/sunxi-h3-h5.dtsi | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +index 11240a8313c2..d38282b9e5d4 100644 +--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi ++++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +@@ -391,6 +391,32 @@ + clocks = <&osc24M>; + }; + ++ emac: ethernet@1c30000 { ++ compatible = "allwinner,sun8i-h3-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c30000 0x10000>; ++ interrupts = ; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "disabled"; ++ ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++ }; ++ + spi0: spi@01c68000 { + compatible = "allwinner,sun8i-h3-spi"; + reg = <0x01c68000 0x1000>; +-- +2.14.3 + +From 65233cba93184e0efa8d94f907d65af947d197a1 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 31 Oct 2017 09:19:11 +0100 +Subject: [PATCH 07/11] ARM: dts: sunxi: h3/h5: represent the mdio switch used + by sun8i-h3-emac + +Since dwmac-sun8i could use either an integrated PHY or an external PHY +(which could be at same MDIO address), we need to represent this selection +by a MDIO switch. + +Signed-off-by: Corentin Labbe +Acked-by: Florian Fainelli +Reviewed-by: Andrew Lunn +--- + arch/arm/boot/dts/sunxi-h3-h5.dtsi | 31 +++++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +index d38282b9e5d4..2721b39c1875 100644 +--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi ++++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +@@ -408,11 +408,34 @@ + mdio: mdio { + #address-cells = <1>; + #size-cells = <0>; +- int_mii_phy: ethernet-phy@1 { +- compatible = "ethernet-phy-ieee802.3-c22"; ++ compatible = "snps,dwmac-mdio"; ++ }; ++ ++ mdio-mux { ++ compatible = "allwinner,sun8i-h3-mdio-mux"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mdio-parent-bus = <&mdio>; ++ /* Only one MDIO is usable at the time */ ++ internal_mdio: mdio@1 { ++ compatible = "allwinner,sun8i-h3-mdio-internal"; + reg = <1>; +- clocks = <&ccu CLK_BUS_EPHY>; +- resets = <&ccu RST_BUS_EPHY>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ int_mii_phy: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++ ++ external_mdio: mdio@2 { ++ reg = <2>; ++ #address-cells = <1>; ++ #size-cells = <0>; + }; + }; + }; +-- +2.14.3 + +From b705315d36dbe1b31062f30c987b3a502b437c85 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 1 Nov 2017 14:08:45 +0000 +Subject: [PATCH 08/11] ARM: dts: sunxi: Restore EMAC changes (boards) + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore all boards DT about dwmac-sun8i +This reverts partially commit fe45174b72ae ("arm: dts: sunxi: Revert EMAC changes") + +Signed-off-by: Corentin Labbe +Acked-by: Florian Fainelli +--- + arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 9 +++++++++ + arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 19 +++++++++++++++++++ + arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts | 19 +++++++++++++++++++ + arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts | 7 +++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 8 ++++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 8 ++++++++ arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts | 5 +++++ - arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 8 +++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 22 +++++++++++++++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts | 16 ++++++++++++++ - arch/arm/boot/dts/sunxi-h3-h5.dtsi | 26 +++++++++++++++++++++++ - 10 files changed, 128 insertions(+) + arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 8 ++++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 22 ++++++++++++++++++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts | 16 ++++++++++++++++ + 10 files changed, 121 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts index b1502df7b509..6713d0f2b3f4 100644 @@ -77,7 +1091,7 @@ index b1502df7b509..6713d0f2b3f4 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins_a>; diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts -index a337af1de322..d756ff825116 100644 +index a337af1de322..3f95d806355b 100644 --- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts +++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts @@ -52,6 +52,7 @@ @@ -88,7 +1102,7 @@ index a337af1de322..d756ff825116 100644 serial0 = &uart0; serial1 = &uart1; }; -@@ -114,12 +115,30 @@ +@@ -114,6 +115,24 @@ status = "okay"; }; @@ -103,22 +1117,43 @@ index a337af1de322..d756ff825116 100644 + status = "okay"; +}; + - &ir { - pinctrl-names = "default"; - pinctrl-0 = <&ir_pins_a>; - status = "okay"; - }; - -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + }; +}; + - &mmc0 { + &ir { pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; + pinctrl-0 = <&ir_pins_a>; +diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +index 8ddd1b2cc097..ef0371811296 100644 +--- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts ++++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +@@ -62,3 +62,22 @@ + &ohci2 { + status = "okay"; + }; ++ ++&emac { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&emac_rgmii_pins>; ++ phy-supply = <®_gmac_3v3>; ++ phy-handle = <&ext_rgmii_phy>; ++ phy-mode = "rgmii"; ++ ++ allwinner,leds-active-low; ++ ++ status = "okay"; ++}; ++ ++&external_mdio { ++ ext_rgmii_phy: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <7>; ++ }; ++}; diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts index 8d2cc6e9a03f..78f6c24952dd 100644 --- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts @@ -229,7 +1264,7 @@ index 1a044b17d6c6..998b60f8d295 100644 pinctrl-names = "default"; pinctrl-0 = <&ir_pins_a>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts -index 828ae7a526d9..331ed683ac62 100644 +index 828ae7a526d9..3002c025e187 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts @@ -47,6 +47,10 @@ @@ -258,7 +1293,7 @@ index 828ae7a526d9..331ed683ac62 100644 + status = "okay"; +}; + -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; @@ -269,7 +1304,7 @@ index 828ae7a526d9..331ed683ac62 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc2_8bit_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts -index 97920b12a944..80026f3caafc 100644 +index 97920b12a944..6dbf7b2e0c13 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts @@ -61,3 +61,19 @@ @@ -286,71 +1321,39 @@ index 97920b12a944..80026f3caafc 100644 + status = "okay"; +}; + -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; -diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi -index 11240a8313c2..d38282b9e5d4 100644 ---- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi -+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi -@@ -391,6 +391,32 @@ - clocks = <&osc24M>; - }; - -+ emac: ethernet@1c30000 { -+ compatible = "allwinner,sun8i-h3-emac"; -+ syscon = <&syscon>; -+ reg = <0x01c30000 0x10000>; -+ interrupts = ; -+ interrupt-names = "macirq"; -+ resets = <&ccu RST_BUS_EMAC>; -+ reset-names = "stmmaceth"; -+ clocks = <&ccu CLK_BUS_EMAC>; -+ clock-names = "stmmaceth"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ status = "disabled"; -+ -+ mdio: mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ int_mii_phy: ethernet-phy@1 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <1>; -+ clocks = <&ccu CLK_BUS_EPHY>; -+ resets = <&ccu RST_BUS_EPHY>; -+ }; -+ }; -+ }; -+ - spi0: spi@01c68000 { - compatible = "allwinner,sun8i-h3-spi"; - reg = <0x01c68000 0x1000>; -- -2.13.5 +2.14.3 -From 4aba5ca95496899165ee7ceef5d9c60a6e7b15dd Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 4 Sep 2017 13:04:47 +0100 -Subject: [PATCH 3/4] Revert "arm64: dts: allwinner: Revert EMAC changes" +From 516b88bfa40cf54732d2ba5e689fdf592a742ec3 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 31 Oct 2017 09:19:13 +0100 +Subject: [PATCH 09/11] arm64: dts: allwinner: A64: Restore EMAC changes -This reverts commit 87e1f5e8bb4bd584de0a8f3b1e42196dca221d02. +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore arm64 DT about dwmac-sun8i for A64 +This reverts commit 87e1f5e8bb4b ("arm64: dts: allwinner: Revert EMAC changes") + +Signed-off-by: Corentin Labbe +Acked-by: Florian Fainelli --- .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 16 ++++++++++++++++ .../boot/dts/allwinner/sun50i-a64-pine64-plus.dts | 15 +++++++++++++++ arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 17 +++++++++++++++++ .../dts/allwinner/sun50i-a64-sopine-baseboard.dts | 16 ++++++++++++++++ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 20 ++++++++++++++++++++ - .../boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 17 +++++++++++++++++ - .../boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 17 +++++++++++++++++ - .../boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 17 +++++++++++++++++ - 8 files changed, 135 insertions(+) + 5 files changed, 84 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts -index 6872135d7f84..ba2fde2909f9 100644 +index d347f52e27f6..45bdbfb96126 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts @@ -51,6 +51,7 @@ @@ -361,8 +1364,8 @@ index 6872135d7f84..ba2fde2909f9 100644 serial0 = &uart0; serial1 = &uart1; }; -@@ -67,6 +68,14 @@ - }; +@@ -69,6 +70,14 @@ + status = "okay"; }; +&emac { @@ -376,7 +1379,7 @@ index 6872135d7f84..ba2fde2909f9 100644 &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; -@@ -77,6 +86,13 @@ +@@ -79,6 +88,13 @@ bias-pull-up; }; @@ -414,7 +1417,7 @@ index f82ccf332c0f..24f1aac366d6 100644 + }; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts -index 7c533b6d4ba9..827168bc22ed 100644 +index d06e34b5d192..806442d3e846 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts @@ -51,6 +51,7 @@ @@ -425,7 +1428,7 @@ index 7c533b6d4ba9..827168bc22ed 100644 serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; -@@ -78,6 +79,15 @@ +@@ -71,6 +72,15 @@ status = "okay"; }; @@ -441,7 +1444,7 @@ index 7c533b6d4ba9..827168bc22ed 100644 &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; -@@ -88,6 +98,13 @@ +@@ -81,6 +91,13 @@ bias-pull-up; }; @@ -456,7 +1459,7 @@ index 7c533b6d4ba9..827168bc22ed 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts -index d891a1a27f6c..216e3a5dafae 100644 +index 17ccc12b58df..0eb2acedf8c3 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts @@ -53,6 +53,7 @@ @@ -490,7 +1493,7 @@ index d891a1a27f6c..216e3a5dafae 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc2_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 68aadc9b96dc..bd0f33b77f57 100644 +index 8c8db1b057df..50f17bab0c07 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -449,6 +449,26 @@ @@ -520,8 +1523,31 @@ index 68aadc9b96dc..bd0f33b77f57 100644 gic: interrupt-controller@1c81000 { compatible = "arm,gic-400"; reg = <0x01c81000 0x1000>, +-- +2.14.3 + +From 070173449eb88e9cf9c91889c77f53616911f4d0 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 31 Oct 2017 09:19:14 +0100 +Subject: [PATCH 10/11] arm64: dts: allwinner: H5: Restore EMAC changes + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore arm64 DT about dwmac-sun8i for H5 +This reverts a part of commit 87e1f5e8bb4b ("arm64: dts: allwinner: Revert EMAC changes") + +Signed-off-by: Corentin Labbe +Acked-by: Florian Fainelli +--- + arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 17 +++++++++++++++++ + .../arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 17 +++++++++++++++++ + .../boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 17 +++++++++++++++++ + 3 files changed, 51 insertions(+) + diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts -index 1c2387bd5df6..968908761194 100644 +index 1c2387bd5df6..6eb8092d8e57 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts @@ -50,6 +50,7 @@ @@ -545,7 +1571,7 @@ index 1c2387bd5df6..968908761194 100644 + status = "okay"; +}; + -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@7 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <7>; @@ -556,7 +1582,7 @@ index 1c2387bd5df6..968908761194 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -index 4f77c8470f6c..a8296feee884 100644 +index 4f77c8470f6c..a0ca925175aa 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts @@ -59,6 +59,7 @@ @@ -567,7 +1593,7 @@ index 4f77c8470f6c..a8296feee884 100644 serial0 = &uart0; }; -@@ -136,12 +137,28 @@ +@@ -136,6 +137,22 @@ status = "okay"; }; @@ -580,24 +1606,18 @@ index 4f77c8470f6c..a8296feee884 100644 + status = "okay"; +}; + - &ir { - pinctrl-names = "default"; - pinctrl-0 = <&ir_pins_a>; - status = "okay"; - }; - -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; + - &mmc0 { + &ir { pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; + pinctrl-0 = <&ir_pins_a>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts -index 6be06873e5af..d906b302cbcd 100644 +index 6be06873e5af..b47790650144 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts @@ -54,6 +54,7 @@ @@ -608,7 +1628,7 @@ index 6be06873e5af..d906b302cbcd 100644 serial0 = &uart0; }; -@@ -143,12 +144,28 @@ +@@ -143,6 +144,22 @@ status = "okay"; }; @@ -621,126 +1641,151 @@ index 6be06873e5af..d906b302cbcd 100644 + status = "okay"; +}; + - &ir { - pinctrl-names = "default"; - pinctrl-0 = <&ir_pins_a>; - status = "okay"; - }; - -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; + - &mmc0 { + &ir { pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; + pinctrl-0 = <&ir_pins_a>; -- -2.13.5 +2.14.3 -From 11190f020b948ccdf15061b6df8cc2836a2afcb1 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 4 Sep 2017 13:04:55 +0100 -Subject: [PATCH 4/4] Revert "dt-bindings: net: Revert sun8i dwmac binding" +From 63118a9f7808a0a67c23e7d276138c996e094eae Mon Sep 17 00:00:00 2001 +From: Corentin LABBE +Date: Tue, 31 Oct 2017 09:19:15 +0100 +Subject: [PATCH 11/11] arm64: dts: allwinner: add snps, dwmac-mdio compatible + to emac/mdio -This reverts commit 8aa33ec2f4812d1ee96f4c02ba013f5b9c514343. +stmmac bindings docs said that its mdio node must have +compatible = "snps,dwmac-mdio"; +Since dwmac-sun8i does not have any good reasons to not doing it, all +their MDIO node must have it. + +Signed-off-by: Corentin Labbe +Acked-by: Florian Fainelli --- - .../devicetree/bindings/net/dwmac-sun8i.txt | 84 ++++++++++++++++++++++ - 1 file changed, 84 insertions(+) - create mode 100644 Documentation/devicetree/bindings/net/dwmac-sun8i.txt + arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 + + 1 file changed, 1 insertion(+) -diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt -new file mode 100644 -index 000000000000..725f3b187886 ---- /dev/null -+++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt -@@ -0,0 +1,84 @@ -+* Allwinner sun8i GMAC ethernet controller -+ -+This device is a platform glue layer for stmmac. -+Please see stmmac.txt for the other unchanged properties. -+ -+Required properties: -+- compatible: should be one of the following string: -+ "allwinner,sun8i-a83t-emac" -+ "allwinner,sun8i-h3-emac" -+ "allwinner,sun8i-v3s-emac" -+ "allwinner,sun50i-a64-emac" -+- reg: address and length of the register for the device. -+- interrupts: interrupt for the device -+- interrupt-names: should be "macirq" -+- clocks: A phandle to the reference clock for this device -+- clock-names: should be "stmmaceth" -+- resets: A phandle to the reset control for this device -+- reset-names: should be "stmmaceth" -+- phy-mode: See ethernet.txt -+- phy-handle: See ethernet.txt -+- #address-cells: shall be 1 -+- #size-cells: shall be 0 -+- syscon: A phandle to the syscon of the SoC with one of the following -+ compatible string: -+ - allwinner,sun8i-h3-system-controller -+ - allwinner,sun8i-v3s-system-controller -+ - allwinner,sun50i-a64-system-controller -+ - allwinner,sun8i-a83t-system-controller -+ -+Optional properties: -+- allwinner,tx-delay-ps: TX clock delay chain value in ps. Range value is 0-700. Default is 0) -+- allwinner,rx-delay-ps: RX clock delay chain value in ps. Range value is 0-3100. Default is 0) -+Both delay properties need to be a multiple of 100. They control the delay for -+external PHY. -+ -+Optional properties for the following compatibles: -+ - "allwinner,sun8i-h3-emac", -+ - "allwinner,sun8i-v3s-emac": -+- allwinner,leds-active-low: EPHY LEDs are active low -+ -+Required child node of emac: -+- mdio bus node: should be named mdio -+ -+Required properties of the mdio node: -+- #address-cells: shall be 1 -+- #size-cells: shall be 0 -+ -+The device node referenced by "phy" or "phy-handle" should be a child node -+of the mdio node. See phy.txt for the generic PHY bindings. -+ -+Required properties of the phy node with the following compatibles: -+ - "allwinner,sun8i-h3-emac", -+ - "allwinner,sun8i-v3s-emac": -+- clocks: a phandle to the reference clock for the EPHY -+- resets: a phandle to the reset control for the EPHY -+ -+Example: -+ -+emac: ethernet@1c0b000 { -+ compatible = "allwinner,sun8i-h3-emac"; -+ syscon = <&syscon>; -+ reg = <0x01c0b000 0x104>; -+ interrupts = ; -+ interrupt-names = "macirq"; -+ resets = <&ccu RST_BUS_EMAC>; -+ reset-names = "stmmaceth"; -+ clocks = <&ccu CLK_BUS_EMAC>; -+ clock-names = "stmmaceth"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ phy-handle = <&int_mii_phy>; -+ phy-mode = "mii"; -+ allwinner,leds-active-low; -+ mdio: mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ int_mii_phy: ethernet-phy@1 { -+ reg = <1>; -+ clocks = <&ccu CLK_BUS_EPHY>; -+ resets = <&ccu RST_BUS_EPHY>; -+ }; -+ }; -+}; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +index 50f17bab0c07..8fd75c95937a 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +@@ -464,6 +464,7 @@ + #size-cells = <0>; + + mdio: mdio { ++ compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + }; -- -2.13.5 +2.14.3 + +From patchwork Fri Nov 10 09:26:54 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: arm64: allwinner: a64: add Ethernet PHY regulator for several boards +From: Icenowy Zheng +X-Patchwork-Id: 10052659 +Message-Id: <20171110092654.10746-1-icenowy@aosc.io> +To: Maxime Ripard , + Chen-Yu Tsai +Cc: linux-sunxi@googlegroups.com, linux-kernel@vger.kernel.org, + linux-arm-kernel@lists.infradead.org, Icenowy Zheng +Date: Fri, 10 Nov 2017 17:26:54 +0800 + +On several A64 boards the Ethernet PHY is powered by the DC1SW regulator +on the AXP803 PMIC. + +Add phy-handle property to these boards' emac node. + +Signed-off-by: Icenowy Zheng +Acked-by: Corentin LABBE +Tested-by: Corentin LABBE +--- + arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 1 + + arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 1 + + arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +index 45bdbfb96126..4a8d3f83a36e 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +@@ -75,6 +75,7 @@ + pinctrl-0 = <&rgmii_pins>; + phy-mode = "rgmii"; + phy-handle = <&ext_rgmii_phy>; ++ phy-supply = <®_dc1sw>; + status = "okay"; + }; + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +index 806442d3e846..604cdaedac38 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +@@ -77,6 +77,7 @@ + pinctrl-0 = <&rmii_pins>; + phy-mode = "rmii"; + phy-handle = <&ext_rmii_phy1>; ++ phy-supply = <®_dc1sw>; + status = "okay"; + + }; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +index 0eb2acedf8c3..a053a6ac5267 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +@@ -82,6 +82,7 @@ + pinctrl-0 = <&rgmii_pins>; + phy-mode = "rgmii"; + phy-handle = <&ext_rgmii_phy>; ++ phy-supply = <®_dc1sw>; + status = "okay"; + }; + +From 79e7d6c8bfe67fce8c8fe4953e74ce7f420dd732 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 21 Nov 2017 15:43:19 +0000 +Subject: [PATCH] ARM: dts: sunxi: sun8i-h3-nanopi-m1-plus: Add missing + regulator + +This patch add the missing regulator for sun8i-h3-nanopi-m1-plus. + +Fixes: ("ARM: dts: sunxi: Restore EMAC changes (boards)") +Signed-off-by: Corentin Labbe +--- + arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +index ef0371811296..738ef1d9e844 100644 +--- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts ++++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +@@ -45,6 +45,17 @@ + / { + model = "FriendlyArm NanoPi M1 Plus"; + compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3"; ++ ++ reg_gmac_3v3: gmac-3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "gmac-3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ startup-delay-us = <100000>; ++ enable-active-high; ++ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; ++ }; ++ + }; + + &ehci1 { +-- +2.14.3 diff --git a/arm-of-restrict-dma-configuration.patch b/arm-of-restrict-dma-configuration.patch deleted file mode 100644 index cc9ddd965..000000000 --- a/arm-of-restrict-dma-configuration.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 723288836628bc1c0855f3bb7b64b1803e4b9e4a Mon Sep 17 00:00:00 2001 -From: Robin Murphy -Date: Thu, 31 Aug 2017 11:32:54 +0100 -Subject: of: restrict DMA configuration - -Moving DMA configuration to happen later at driver probe time had the -unnoticed side-effect that we now perform DMA configuration for *every* -device represented in DT, rather than only those explicitly created by -the of_platform and PCI code. - -As Christoph points out, this is not really the best thing to do. Whilst -there may well be other DMA-capable buses that can benefit from having -their children automatically configured after the bridge has probed, -there are also plenty of others like USB, MDIO, etc. that definitely do -not support DMA and should not be indiscriminately processed. - -The good news is that in most cases the DT "dma-ranges" property serves -as an appropriate indicator - per a strict interpretation of the spec, -anything lacking a "dma-ranges" property should be considered not to -have a mapping of DMA address space from its children to its parent, -thus anything for which of_dma_get_range() does not succeed does not -need DMA configuration. Certain bus types have a general expectation of -DMA capability and carry a well-established precedent that an absent -"dma-ranges" implies the same as the empty property, so we automatically -opt those in to DMA configuration regardless, to avoid regressing most -existing platforms. - -Fixes: 09515ef5ddad ("of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices") -Reported-by: Christoph Hellwig -Signed-off-by: Robin Murphy -Acked-by: Rob Herring -Signed-off-by: Christoph Hellwig ---- - drivers/of/device.c | 48 ++++++++++++++++++++++++++++++++---------------- - 1 file changed, 32 insertions(+), 16 deletions(-) - -diff --git a/drivers/of/device.c b/drivers/of/device.c -index e0a28ea..04c4c95 100644 ---- a/drivers/of/device.c -+++ b/drivers/of/device.c -@@ -9,6 +9,9 @@ - #include - #include - #include -+#include -+#include -+#include - - #include - #include "of_private.h" -@@ -84,31 +87,28 @@ int of_device_add(struct platform_device *ofdev) - */ - int of_dma_configure(struct device *dev, struct device_node *np) - { -- u64 dma_addr, paddr, size; -+ u64 dma_addr, paddr, size = 0; - int ret; - bool coherent; - unsigned long offset; - const struct iommu_ops *iommu; - u64 mask; - -- /* -- * Set default coherent_dma_mask to 32 bit. Drivers are expected to -- * setup the correct supported mask. -- */ -- if (!dev->coherent_dma_mask) -- dev->coherent_dma_mask = DMA_BIT_MASK(32); -- -- /* -- * Set it to coherent_dma_mask by default if the architecture -- * code has not set it. -- */ -- if (!dev->dma_mask) -- dev->dma_mask = &dev->coherent_dma_mask; -- - ret = of_dma_get_range(np, &dma_addr, &paddr, &size); - if (ret < 0) { -+ /* -+ * For legacy reasons, we have to assume some devices need -+ * DMA configuration regardless of whether "dma-ranges" is -+ * correctly specified or not. -+ */ -+ if (!dev_is_pci(dev) && -+#ifdef CONFIG_ARM_AMBA -+ dev->bus != &amba_bustype && -+#endif -+ dev->bus != &platform_bus_type) -+ return ret == -ENODEV ? 0 : ret; -+ - dma_addr = offset = 0; -- size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1); - } else { - offset = PFN_DOWN(paddr - dma_addr); - -@@ -129,6 +129,22 @@ int of_dma_configure(struct device *dev, struct device_node *np) - dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset); - } - -+ /* -+ * Set default coherent_dma_mask to 32 bit. Drivers are expected to -+ * setup the correct supported mask. -+ */ -+ if (!dev->coherent_dma_mask) -+ dev->coherent_dma_mask = DMA_BIT_MASK(32); -+ /* -+ * Set it to coherent_dma_mask by default if the architecture -+ * code has not set it. -+ */ -+ if (!dev->dma_mask) -+ dev->dma_mask = &dev->coherent_dma_mask; -+ -+ if (!size) -+ size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1); -+ - dev->dma_pfn_offset = offset; - - /* --- -cgit v1.1 - diff --git a/arm-tegra-fix-gpu-iommu.patch b/arm-tegra-fix-gpu-iommu.patch deleted file mode 100644 index c775c88b4..000000000 --- a/arm-tegra-fix-gpu-iommu.patch +++ /dev/null @@ -1,39 +0,0 @@ -From patchwork Sun Jul 9 16:36:14 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: ARM: tegra: Register host1x node with iommu binding on tegra124 -From: Paul Kocialkowski -X-Patchwork-Id: 9831825 -Message-Id: <20170709163614.6746-1-contact@paulk.fr> -To: linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, - linux-kernel@vger.kernel.org -Cc: Thierry Reding , - Stephen Warren , - Mikko Perttunen , - Paul Kocialkowski , - Jonathan Hunter -Date: Sun, 9 Jul 2017 19:36:14 +0300 - -This registers the host1x node with the SMMU (as HC swgroup) to allow -the host1x code to attach to it. It avoid failing the probe sequence, -which resulted in the tegra drm driver not probing and thus nothing -being displayed on-screen. - -Signed-off-by: Paul Kocialkowski ---- - arch/arm/boot/dts/tegra124.dtsi | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi -index 187a36c6d0fc..b3b89befffeb 100644 ---- a/arch/arm/boot/dts/tegra124.dtsi -+++ b/arch/arm/boot/dts/tegra124.dtsi -@@ -85,6 +85,7 @@ - clocks = <&tegra_car TEGRA124_CLK_HOST1X>; - resets = <&tegra_car 28>; - reset-names = "host1x"; -+ iommus = <&mc TEGRA_SWGROUP_HC>; - - #address-cells = <2>; - #size-cells = <2>; diff --git a/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch b/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch new file mode 100644 index 000000000..33f9271b7 --- /dev/null +++ b/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch @@ -0,0 +1,41 @@ +From 90e388ca5d8bbee022f9ed5fc24137b31579fa6e Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 22 Nov 2017 15:52:36 +0000 +Subject: [PATCH] Revert "arm64: allwinner: a64: pine64: Use dcdc1 regulator + for mmc0" + +This reverts commit 3f241bfa60bdc9c4fde63fa6664a8ce00fd668c6. +--- + arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +index d06e34b5d192..caf8b6fbe5e3 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +@@ -61,6 +61,13 @@ + chosen { + stdout-path = "serial0:115200n8"; + }; ++ ++ reg_vcc3v3: vcc3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ }; + }; + + &ehci0 { +@@ -84,7 +91,7 @@ + &mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins>; +- vmmc-supply = <®_dcdc1>; ++ vmmc-supply = <®_vcc3v3>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; + cd-inverted; + disable-wp; +-- +2.14.3 + diff --git a/arm64-aw64-devices.patch b/arm64-aw64-devices.patch deleted file mode 100644 index 94b1b2b04..000000000 --- a/arm64-aw64-devices.patch +++ /dev/null @@ -1,712 +0,0 @@ -From 4c0a84757b5a0365a5dde82e732972eda80a32b1 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Thu, 18 May 2017 15:16:51 +0800 -Subject: arm64: allwinner: a64: add DTSI file for AXP803 PMIC - -As nearly all A64 boards are using AXP803 PMIC, add a DTSI file for it, -like the old DTSI files for AXP20x/22x, for the common parts of the -PMIC. - -Signed-off-by: Icenowy Zheng -Acked-by: Mark Brown -Signed-off-by: Chen-Yu Tsai ---- - arch/arm64/boot/dts/allwinner/axp803.dtsi | 150 ++++++++++++++++++++++++++++++ - 1 file changed, 150 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/axp803.dtsi - -diff --git a/arch/arm64/boot/dts/allwinner/axp803.dtsi b/arch/arm64/boot/dts/allwinner/axp803.dtsi -new file mode 100644 -index 0000000..ff8af52 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/axp803.dtsi -@@ -0,0 +1,150 @@ -+/* -+ * Copyright 2017 Icenowy Zheng -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This file is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This file is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/* -+ * AXP803 Integrated Power Management Chip -+ * http://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf -+ */ -+ -+&axp803 { -+ interrupt-controller; -+ #interrupt-cells = <1>; -+ -+ regulators { -+ /* Default work frequency for buck regulators */ -+ x-powers,dcdc-freq = <3000>; -+ -+ reg_aldo1: aldo1 { -+ regulator-name = "aldo1"; -+ }; -+ -+ reg_aldo2: aldo2 { -+ regulator-name = "aldo2"; -+ }; -+ -+ reg_aldo3: aldo3 { -+ regulator-name = "aldo3"; -+ }; -+ -+ reg_dc1sw: dc1sw { -+ regulator-name = "dc1sw"; -+ }; -+ -+ reg_dcdc1: dcdc1 { -+ regulator-name = "dcdc1"; -+ }; -+ -+ reg_dcdc2: dcdc2 { -+ regulator-name = "dcdc2"; -+ }; -+ -+ reg_dcdc3: dcdc3 { -+ regulator-name = "dcdc3"; -+ }; -+ -+ reg_dcdc4: dcdc4 { -+ regulator-name = "dcdc4"; -+ }; -+ -+ reg_dcdc5: dcdc5 { -+ regulator-name = "dcdc5"; -+ }; -+ -+ reg_dcdc6: dcdc6 { -+ regulator-name = "dcdc6"; -+ }; -+ -+ reg_dldo1: dldo1 { -+ regulator-name = "dldo1"; -+ }; -+ -+ reg_dldo2: dldo2 { -+ regulator-name = "dldo2"; -+ }; -+ -+ reg_dldo3: dldo3 { -+ regulator-name = "dldo3"; -+ }; -+ -+ reg_dldo4: dldo4 { -+ regulator-name = "dldo4"; -+ }; -+ -+ reg_eldo1: eldo1 { -+ regulator-name = "eldo1"; -+ }; -+ -+ reg_eldo2: eldo2 { -+ regulator-name = "eldo2"; -+ }; -+ -+ reg_eldo3: eldo3 { -+ regulator-name = "eldo3"; -+ }; -+ -+ reg_fldo1: fldo1 { -+ regulator-name = "fldo1"; -+ }; -+ -+ reg_fldo2: fldo2 { -+ regulator-name = "fldo2"; -+ }; -+ -+ reg_ldo_io0: ldo-io0 { -+ regulator-name = "ldo-io0"; -+ status = "disabled"; -+ }; -+ -+ reg_ldo_io1: ldo-io1 { -+ regulator-name = "ldo-io1"; -+ status = "disabled"; -+ }; -+ -+ reg_rtc_ldo: rtc-ldo { -+ /* RTC_LDO is a fixed, always-on regulator */ -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "rtc-ldo"; -+ }; -+ }; -+}; --- -cgit v1.1 -From 535ca50858e2d8bf1618ace056cd96f0b3d01133 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Tue, 6 Jun 2017 13:59:32 +0800 -Subject: arm64: allwinner: a64: add NMI (R_INTC) controller on A64 - -Allwinner A64 SoC features a R_INTC controller, which controls the NMI -line, and this interrupt line is usually connected to the AXP PMIC. - -Add support for it. - -Signed-off-by: Icenowy Zheng -[wens@csie.org: Add fallback sun6i-a31-r-intc compatible] -Signed-off-by: Chen-Yu Tsai -Acked-by: Maxime Ripard ---- - arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 9d00622..78c7c9d 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -487,6 +487,15 @@ - ; - }; - -+ r_intc: interrupt-controller@1f00c00 { -+ compatible = "allwinner,sun50i-a64-r-intc", -+ "allwinner,sun6i-a31-r-intc"; -+ interrupt-controller; -+ #interrupt-cells = <2>; -+ reg = <0x01f00c00 0x400>; -+ interrupts = ; -+ }; -+ - r_ccu: clock@1f01400 { - compatible = "allwinner,sun50i-a64-r-ccu"; - reg = <0x01f01400 0x100>; --- -cgit v1.1 -From bf397214530ee5c873dac7b12126b250afd3831f Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Mon, 14 Aug 2017 16:06:53 +0530 -Subject: arm64: allwinner: a64: Add initial NanoPi A64 support - -NanoPi A64 is a new board of high performance with low cost -designed by FriendlyElec., using the Allwinner A64 SOC. - -Nanopi A64 features -- Allwinner A64, 64-bit Quad-core Cortex-A53@648MHz to 1.152GHz, DVFS -- 1GB DDR3 RAM -- MicroSD -- Gigabit Ethernet (RTL8211E) -- Wi-Fi 802.11b/g/n -- IR receiver -- Audio In/Out -- Video In/Out -- Serial Debug Port -- microUSB 5V 2A DC power-supply - -Signed-off-by: Jagan Teki -Signed-off-by: Chen-Yu Tsai ---- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | 207 +++++++++++++++++++++ - 2 files changed, 208 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 108f12c..c997b5c 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -1,4 +1,5 @@ - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts -new file mode 100644 -index 0000000..2beef9e ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts -@@ -0,0 +1,207 @@ -+/* -+ * Copyright (C) 2017 Jagan Teki -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-a64.dtsi" -+ -+#include -+ -+/ { -+ model = "FriendlyARM NanoPi A64"; -+ compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; -+ -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+}; -+ -+&ehci0 { -+ status = "okay"; -+}; -+ -+&ehci1 { -+ status = "okay"; -+}; -+ -+/* i2c1 connected with gpio headers like pine64, bananapi */ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ status = "disabled"; -+}; -+ -+&i2c1_pins { -+ bias-pull-up; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; -+ cd-inverted; -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&ohci0 { -+ status = "okay"; -+}; -+ -+&ohci1 { -+ status = "okay"; -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-3v"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1040000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <1500000>; -+ regulator-name = "vcc-dram"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-hdmi-dsi"; -+}; -+ -+®_dldo4 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-pg-wifi-io"; -+}; -+ -+®_eldo1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "cpvdd"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+/* -+ * The A64 chip cannot work without this regulator off, although -+ * it seems to be only driving the AR100 core. -+ * Maybe we don't still know well about CPUs domain. -+ */ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins_a>; -+ status = "okay"; -+}; -+ -+&usbphy { -+ status = "okay"; -+}; --- -cgit v1.1 -From 4969efb28b4301b09aba621f30cf81c582c018a8 Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Mon, 14 Aug 2017 16:16:04 +0530 -Subject: arm64: allwinner: a64: Add A64-OLinuXino initial support - -OLimex A64-OLinuXino is an open-source hardware board -using the Allwinner A64 SOC. - -OLimex A64-OLinuXino has -- A64 Quad-core Cortex-A53 64bit -- 1GB or 2GB RAM DDR3L @ 672Mhz -- microSD slot and 4/8/16GB eMMC -- Debug TTL UART -- HDMI -- LCD -- IR receiver -- 5V DC power supply - -Signed-off-by: Jagan Teki -Signed-off-by: Chen-Yu Tsai ---- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../boot/dts/allwinner/sun50i-a64-olinuxino.dts | 199 +++++++++++++++++++++ - 2 files changed, 200 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index c997b5c..19c3fbd 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -1,5 +1,6 @@ - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts -new file mode 100644 -index 0000000..338e7861 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts -@@ -0,0 +1,199 @@ -+/* -+ * Copyright (C) 2017 Jagan Teki -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-a64.dtsi" -+ -+#include -+ -+/ { -+ model = "Olimex A64-Olinuxino"; -+ compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; -+ -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; -+ cd-inverted; -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+®_aldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "vcc-pe"; -+}; -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-3v3"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1040000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <1500000>; -+ regulator-name = "vcc-ddr3"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-hdmi"; -+}; -+ -+®_dldo2 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-mipi"; -+}; -+ -+®_dldo3 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "vcc-avdd-csi"; -+}; -+ -+®_dldo4 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-wifi-io"; -+}; -+ -+®_eldo1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "cpvdd"; -+}; -+ -+®_eldo2 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-dvdd-csi"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+/* -+ * The A64 chip cannot work without this regulator off, although -+ * it seems to be only driving the AR100 core. -+ * Maybe we don't still know well about CPUs domain. -+ */ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins_a>; -+ status = "okay"; -+}; --- -cgit v1.1 diff --git a/arm64-cavium-fixes.patch b/arm64-cavium-fixes.patch deleted file mode 100644 index a898bb779..000000000 --- a/arm64-cavium-fixes.patch +++ /dev/null @@ -1,455 +0,0 @@ -From c03847b4a603846903ee72a5e1baab03e0591423 Mon Sep 17 00:00:00 2001 -From: Ashok Kumar Sekar -Date: Fri, 23 Sep 2016 04:16:19 -0700 -Subject: [PATCH 1/8] PCI: Vulcan: AHCI PCI bar fix for Broadcom Vulcan early - silicon - -PCI BAR 5 is not setup correctly for the on-board AHCI -controller on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 -by using BAR 4's resources which are populated correctly but NOT used -by the AHCI controller actually. - -Signed-off-by: Ashok Kumar Sekar -Signed-off-by: Jayachandran C -Signed-off-by: Robert Richter ---- - drivers/pci/quirks.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index dc624fb34e72..94b7bdf63b19 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -3994,6 +3994,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, - quirk_bridge_cavm_thrx2_pcie_root); - - /* -+ * PCI BAR 5 is not setup correctly for the on-board AHCI controller -+ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by -+ * using BAR 4's resources which are populated correctly and NOT -+ * actually used by the AHCI controller. -+ */ -+static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) -+{ -+ struct resource *r = &dev->resource[4]; -+ -+ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) -+ return; -+ -+ /* Set BAR5 resource to BAR4 */ -+ dev->resource[5] = *r; -+ -+ /* Update BAR5 in pci config space */ -+ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); -+ -+ /* Clear BAR4's resource */ -+ memset(r, 0, sizeof(*r)); -+} -+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); -+ -+/* - * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) - * class code. Fix it. - */ --- -2.11.0 - -From c84892e4b6b671fda7e499a0bb0787bd026de015 Mon Sep 17 00:00:00 2001 -From: Jayachandran C -Date: Fri, 10 Mar 2017 10:04:52 +0000 -Subject: [PATCH 2/8] ahci: thunderx2: Fix for errata that affects stop engine - -Apply workaround for this errata: - Synopsis: Resetting PxCMD.ST may hang the SATA device - - Description: An internal ping-pong buffer state is not reset - correctly for an PxCMD.ST=0 command for a SATA channel. This - may cause the SATA interface to hang when a PxCMD.ST=0 command - is received. - - Workaround: A SATA_BIU_CORE_ENABLE.sw_init_bsi must be asserted - by the driver whenever the PxCMD.ST needs to be de-asserted. This - will reset both the ports. So, it may not always work in a 2 - channel SATA system. - - Resolution: Fix in B0. - -Add the code to ahci_stop_engine() to do this. It is not easy to -stop the other "port" since it is associated with a different AHCI -interface. Please note that with this fix, SATA reset does not -hang any more, but it can cause failures on the other interface -if that is in active use. - -Unfortunately, we have nothing other the the CPU ID to check if the -SATA block has this issue. - -Signed-off-by: Jayachandran C -[added check to restict to pci devs on the soc only] -Signed-off-by: Robert Richter ---- - drivers/ata/libahci.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c -index 3e286d86ab42..9116bba1b07d 100644 ---- a/drivers/ata/libahci.c -+++ b/drivers/ata/libahci.c -@@ -669,6 +669,23 @@ int ahci_stop_engine(struct ata_port *ap) - tmp &= ~PORT_CMD_START; - writel(tmp, port_mmio + PORT_CMD); - -+#ifdef CONFIG_ARM64 -+ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ -+ if (dev_is_pci(ap->host->dev) && -+ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && -+ to_pci_dev(ap->host->dev)->device == 0x9027 && -+ MIDR_IS_CPU_MODEL_RANGE(read_cpuid_id(), -+ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), -+ MIDR_CPU_VAR_REV(0, 0), -+ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { -+ tmp = readl(hpriv->mmio + 0x8000); -+ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); -+ udelay(1); -+ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); -+ dev_warn(ap->host->dev, "CN99XX stop engine fix applied!\n"); -+ } -+#endif -+ - /* wait for engine to stop. This could be as long as 500 msec */ - tmp = ata_wait_register(ap, port_mmio + PORT_CMD, - PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); --- -2.11.0 - -From 98a39621952f6a13c5198e79f1c080ea6fc1d092 Mon Sep 17 00:00:00 2001 -From: Jayachandran C -Date: Sun, 22 Feb 1998 18:42:42 -0800 -Subject: [PATCH 3/8] ahci: thunderx2: stop engine fix update - -The current reset fix fails during continuous reboot test. The failure -happens when both the on-board SATA slots are used and when one of the -controllers are reset. - -The latest ThunderX2 firmware (3.1) enables hardware error interrupts and -when the reset fix fails, we get a hang with the print: -[ 14.839308] sd 1:0:0:0: [sdb] 468862128 512-byte logical blocks: (240 GB/224 GiB) -[ 14.846796] sd 1:0:0:0: [sdb] 4096-byte physical blocks -[ 14.852036] sd 1:0:0:0: [sdb] Write Protect is off -[ 14.856843] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA -[ 14.866022] ata2.00: Enabling discard_zeroes_data - - *** NBU BAR Error 0x1e25c *** - AddrLo 0x1d80180 AddrHi 0x0 - -To fix this issue, update the SATA reset fix to increase the delays between register writes. - -Signed-off-by: Jayachandran C -Signed-off-by: Robert Richter ---- - drivers/ata/libahci.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c -index 9116bba1b07d..1d3e614bad2b 100644 ---- a/drivers/ata/libahci.c -+++ b/drivers/ata/libahci.c -@@ -679,10 +679,11 @@ int ahci_stop_engine(struct ata_port *ap) - MIDR_CPU_VAR_REV(0, 0), - MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { - tmp = readl(hpriv->mmio + 0x8000); -+ udelay(100); - writel(tmp | (1 << 26), hpriv->mmio + 0x8000); -- udelay(1); -+ udelay(100); - writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); -- dev_warn(ap->host->dev, "CN99XX stop engine fix applied!\n"); -+ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); - } - #endif - --- -2.11.0 - -From 33c107d2a2b570cd5246262108ad07cc102e9fcd Mon Sep 17 00:00:00 2001 -From: Robert Richter -Date: Thu, 16 Mar 2017 18:01:59 +0100 -Subject: [PATCH 4/8] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v2 - -In next IORT spec release there will be a definition of a Cavium -specific model. Until then, enable the Cavium SMMU using cpu id -registers. All versions of Cavium's SMMUv2 implementation must be -enabled. - -Signed-off-by: Robert Richter ---- - drivers/iommu/arm-smmu.c | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) - -diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c -index d42cad5a3d52..37aee96ccc0e 100644 ---- a/drivers/iommu/arm-smmu.c -+++ b/drivers/iommu/arm-smmu.c -@@ -53,6 +53,8 @@ - - #include - -+#include -+ - #include "io-pgtable.h" - #include "arm-smmu-regs.h" - -@@ -1871,6 +1873,24 @@ static const struct of_device_id arm_smmu_of_match[] = { - MODULE_DEVICE_TABLE(of, arm_smmu_of_match); - - #ifdef CONFIG_ACPI -+ -+static int acpi_smmu_enable_cavium(struct arm_smmu_device *smmu, int ret) -+{ -+ u32 cpu_model; -+ -+ if (!IS_ENABLED(CONFIG_ARM64)) -+ return ret; -+ -+ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; -+ if (cpu_model != MIDR_THUNDERX) -+ return ret; -+ -+ smmu->version = ARM_SMMU_V2; -+ smmu->model = CAVIUM_SMMUV2; -+ -+ return 0; -+} -+ - static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu) - { - int ret = 0; -@@ -1901,7 +1921,7 @@ static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu) - ret = -ENODEV; - } - -- return ret; -+ return acpi_smmu_enable_cavium(smmu, ret); - } - - static int arm_smmu_device_acpi_probe(struct platform_device *pdev, --- -2.11.0 - -From 5523edb06c95d7ac9e81d94366e71d929c08ebd4 Mon Sep 17 00:00:00 2001 -From: Robert Richter -Date: Wed, 12 Apr 2017 15:06:03 +0200 -Subject: [PATCH 5/8] iommu: Print a message with the default domain type - created - -There are several ways the bypass mode can be enabled. With commit - - fccb4e3b8ab0 iommu: Allow default domain type to be set on the kernel command line - -there is the option to switch into bypass mode. And, depending on -devicetree options, bypass mode can be also enabled. This makes it -hard to determine if direct mapping is enabled. Print message with the -default domain type case. - -Signed-off-by: Robert Richter ---- - drivers/iommu/iommu.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index 3f6ea160afed..7aaafaca6baf 100644 ---- a/drivers/iommu/iommu.c -+++ b/drivers/iommu/iommu.c -@@ -599,7 +599,9 @@ int iommu_group_add_device(struct iommu_group *group, struct device *dev) - - trace_add_device_to_group(group->id, dev); - -- pr_info("Adding device %s to group %d\n", dev_name(dev), group->id); -+ pr_info("Adding device %s to group %d, default domain type %d\n", -+ dev_name(dev), group->id, -+ group->default_domain ? group->default_domain->type : -1); - - return 0; - --- -2.11.0 - -From 71e0ad5ab606077c24a96d69f4bfed58d7ef16c7 Mon Sep 17 00:00:00 2001 -From: Robert Richter -Date: Thu, 4 May 2017 17:48:48 +0200 -Subject: [PATCH 6/8] iommu, aarch64: Set bypass mode per default - -We see a performance degradation if smmu is enabled in non-bypass mode. -This is a problem in the kernel's implememntation. Until that is solved, -enable smmu in bypass mode per default. - -We have tested that SMMU passthrough mode doesn't effect VFIO on both -CN88xx and CN99xx and haven't found any issues. - -Signed-off-by: Robert Richter ---- - drivers/iommu/iommu.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index 7aaafaca6baf..24de0b934221 100644 ---- a/drivers/iommu/iommu.c -+++ b/drivers/iommu/iommu.c -@@ -36,7 +36,12 @@ - - static struct kset *iommu_group_kset; - static DEFINE_IDA(iommu_group_ida); -+ -+#ifdef CONFIG_ARM64 -+static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; -+#else - static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_DMA; -+#endif - - struct iommu_callback_data { - const struct iommu_ops *ops; --- -2.11.0 - -From 27f103963f926d6a7a8adaad1ee227fd3b51f591 Mon Sep 17 00:00:00 2001 -From: Robert Richter -Date: Wed, 12 Apr 2017 10:31:15 +0200 -Subject: [PATCH 7/8] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v3 - -In next IORT spec release there will be a definition of a Cavium -specific model. Until then, enable the Cavium SMMU using cpu id -registers. Early silicon versions (A1) of Cavium's CN99xx SMMUv3 -implementation must be enabled. For later silicon versions (B0) the -iort change will be in place. - -Signed-off-by: Robert Richter ---- - drivers/acpi/arm64/iort.c | 16 ++++++++++++++-- - drivers/iommu/arm-smmu-v3.c | 19 +++++++++++++++++++ - 2 files changed, 33 insertions(+), 2 deletions(-) - -diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c -index a3215ee671c1..b603af92eec2 100644 ---- a/drivers/acpi/arm64/iort.c -+++ b/drivers/acpi/arm64/iort.c -@@ -26,6 +26,8 @@ - #include - #include - -+#include -+ - #define IORT_TYPE_MASK(type) (1 << (type)) - #define IORT_MSI_TYPE (1 << ACPI_IORT_NODE_ITS_GROUP) - #define IORT_IOMMU_TYPE ((1 << ACPI_IORT_NODE_SMMU) | \ -@@ -824,13 +826,22 @@ static int __init arm_smmu_v3_count_resources(struct acpi_iort_node *node) - return num_res; - } - -+static bool is_cavium_cn99xx_smmu_v3(void) -+{ -+ u32 cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; -+ -+ return cpu_model == MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, -+ BRCM_CPU_PART_VULCAN); -+} -+ - static bool arm_smmu_v3_is_combined_irq(struct acpi_iort_smmu_v3 *smmu) - { - /* - * Cavium ThunderX2 implementation doesn't not support unique - * irq line. Use single irq line for all the SMMUv3 interrupts. - */ -- if (smmu->model != ACPI_IORT_SMMU_V3_CAVIUM_CN99XX) -+ if (smmu->model != ACPI_IORT_SMMU_V3_CAVIUM_CN99XX -+ && !is_cavium_cn99xx_smmu_v3()) - return false; - - /* -@@ -848,7 +859,8 @@ static unsigned long arm_smmu_v3_resource_size(struct acpi_iort_smmu_v3 *smmu) - * Override the size, for Cavium ThunderX2 implementation - * which doesn't support the page 1 SMMU register space. - */ -- if (smmu->model == ACPI_IORT_SMMU_V3_CAVIUM_CN99XX) -+ if (smmu->model == ACPI_IORT_SMMU_V3_CAVIUM_CN99XX -+ || is_cavium_cn99xx_smmu_v3()) - return SZ_64K; - - return SZ_128K; -diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c -index 568c400eeaed..d147cb5c7309 100644 ---- a/drivers/iommu/arm-smmu-v3.c -+++ b/drivers/iommu/arm-smmu-v3.c -@@ -39,6 +39,8 @@ - - #include - -+#include -+ - #include "io-pgtable.h" - - /* MMIO registers */ -@@ -2659,6 +2661,21 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) - } - - #ifdef CONFIG_ACPI -+ -+static void acpi_smmu_enable_cavium(struct arm_smmu_device *smmu) -+{ -+ u32 cpu_model; -+ -+ if (!IS_ENABLED(CONFIG_ARM64)) -+ return; -+ -+ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; -+ if (cpu_model != MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN)) -+ return; -+ -+ smmu->options |= ARM_SMMU_OPT_PAGE0_REGS_ONLY; -+} -+ - static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu) - { - switch (model) { -@@ -2670,6 +2687,8 @@ static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu) - break; - } - -+ acpi_smmu_enable_cavium(smmu); -+ - dev_notice(smmu->dev, "option mask 0x%x\n", smmu->options); - } - --- -2.11.0 - -From ff677cc625b52b93351dd73d7881251067f0e976 Mon Sep 17 00:00:00 2001 -From: Radha Mohan Chintakuntla -Date: Wed, 20 Aug 2014 15:10:58 -0700 -Subject: [PATCH 8/8] arm64: gicv3: its: Increase FORCE_MAX_ZONEORDER for - Cavium ThunderX - -In case of ARCH_THUNDER, there is a need to allocate the GICv3 ITS table -which is bigger than the allowed max order. So we are forcing it only in -case of 4KB page size. - -Signed-off-by: Radha Mohan Chintakuntla -[rric: use ARM64_4K_PAGES since we have now ARM64_16K_PAGES, change order] -Signed-off-by: Robert Richter ---- - arch/arm64/Kconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 2c3e2d693d76..023867378f45 100644 ---- a/arch/arm64/Kconfig -+++ b/arch/arm64/Kconfig -@@ -784,6 +784,7 @@ config FORCE_MAX_ZONEORDER - default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) - default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES) - default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE) -+ default "13" if (ARM64_4K_PAGES && ARCH_THUNDER) - default "11" - help - The kernel memory allocator divides physically contiguous memory --- -2.11.0 - diff --git a/arm64-socionext-96b-enablement.patch b/arm64-socionext-96b-enablement.patch index 8eb99ea42..0a7df3a19 100644 --- a/arm64-socionext-96b-enablement.patch +++ b/arm64-socionext-96b-enablement.patch @@ -108,6 +108,158 @@ index fd4b7f6..14e2419 100644 -- cgit v1.1 +From 33d983b5bb2929ae242606925e708092b1dfdd8f Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel +Date: Sat, 2 Sep 2017 11:01:22 +0100 +Subject: drivers/irqchip: gicv3: add workaround for Synquacer pre-ITS + +In their infinite wisdom, the Socionext engineers have decided +that ITS device IDs should not be hardwired, but it should be +left up to the software to assign them, by allowing it to +redirect MSI doorbell writes via a separate hardware block +that issues the doorbell write with a device ID that is +derived from the memory address. This completely breaks any +kind of isolation, or virtualization in general, for that +matter, but add support for it nonetheless. + +Signed-off-by: Ard Biesheuvel +--- + arch/arm64/Kconfig | 8 +++++++ + drivers/irqchip/irq-gic-v3-its.c | 48 +++++++++++++++++++++++++++++++++++----- + 2 files changed, 51 insertions(+), 5 deletions(-) + +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index 0df64a6..c4361df 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -539,6 +539,14 @@ config QCOM_QDF2400_ERRATUM_0065 + + If unsure, say Y. + ++config SOCIONEXT_SYNQUACER_PREITS ++ bool "Socionext Synquacer: Workaround for GICv3 pre-ITS" ++ default y ++ help ++ Socionext Synquacer SoCs implement a separate h/w block to generate ++ MSI doorbell writes with non-zero values for the device ID. ++ ++ If unsure, say Y. + endmenu + + +diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c +index e8d8934..0d372f1 100644 +--- a/drivers/irqchip/irq-gic-v3-its.c ++++ b/drivers/irqchip/irq-gic-v3-its.c +@@ -46,6 +46,7 @@ + #define ITS_FLAGS_CMDQ_NEEDS_FLUSHING (1ULL << 0) + #define ITS_FLAGS_WORKAROUND_CAVIUM_22375 (1ULL << 1) + #define ITS_FLAGS_WORKAROUND_CAVIUM_23144 (1ULL << 2) ++#define ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS (1ULL << 3) + + #define RDIST_FLAGS_PROPBASE_NEEDS_FLUSHING (1 << 0) + +@@ -99,6 +100,10 @@ struct its_node { + struct its_collection *collections; + struct list_head its_device_list; + u64 flags; ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ u64 pre_its_base; ++ u64 pre_its_size; ++#endif + u32 ite_size; + u32 device_ids; + int numa_node; +@@ -1102,13 +1107,29 @@ static void its_irq_compose_msi_msg(struct irq_data *d, struct msi_msg *msg) + u64 addr; + + its = its_dev->its; +- addr = its->phys_base + GITS_TRANSLATER; ++ ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ if (its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS) ++ ++ /* ++ * The Socionext Synquacer SoC has a so-called 'pre-ITS', ++ * which maps 32-bit writes into a separate window of size ++ * '4 << device_id_bits' onto writes to GITS_TRANSLATER with ++ * device ID taken from bits [device_id_bits + 1:2] of the ++ * window offset. ++ */ ++ addr = its->pre_its_base + (its_dev->device_id << 2); ++ else ++#endif ++ addr = its->phys_base + GITS_TRANSLATER; + + msg->address_lo = lower_32_bits(addr); + msg->address_hi = upper_32_bits(addr); + msg->data = its_get_event_id(d); + +- iommu_dma_map_msi_msg(d->irq, msg); ++ if (!IS_ENABLED(CONFIG_SOCIONEXT_SYNQUACER_PREITS) || ++ !(its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS)) ++ iommu_dma_map_msi_msg(d->irq, msg); + } + + static int its_irq_set_irqchip_state(struct irq_data *d, +@@ -1666,6 +1687,11 @@ static int its_alloc_tables(struct its_node *its) + ids = 0x14; /* 20 bits, 8MB */ + } + ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ if (its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS) ++ ids = ilog2(its->pre_its_size) - 2; ++#endif ++ + its->device_ids = ids; + + for (i = 0; i < GITS_BASER_NR_REGS; i++) { +@@ -2788,11 +2814,21 @@ static const struct gic_quirk its_quirks[] = { + } + }; + +-static void its_enable_quirks(struct its_node *its) ++static void its_enable_quirks(struct its_node *its, ++ struct fwnode_handle *handle) + { + u32 iidr = readl_relaxed(its->base + GITS_IIDR); + + gic_enable_quirks(iidr, its_quirks, its); ++ ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ if (!fwnode_property_read_u64_array(handle, ++ "socionext,synquacer-pre-its", ++ &its->pre_its_base, 2)) { ++ its->flags |= ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS; ++ pr_info("ITS: enabling workaround for Socionext Synquacer pre-ITS\n"); ++ } ++#endif + } + + static int its_init_domain(struct fwnode_handle *handle, struct its_node *its) +@@ -2812,7 +2848,9 @@ static int its_init_domain(struct fwnode_handle *handle, struct its_node *its) + + inner_domain->parent = its_parent; + irq_domain_update_bus_token(inner_domain, DOMAIN_BUS_NEXUS); +- inner_domain->flags |= IRQ_DOMAIN_FLAG_MSI_REMAP; ++ ++ if (!(its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS)) ++ inner_domain->flags |= IRQ_DOMAIN_FLAG_MSI_REMAP; + info->ops = &its_msi_domain_ops; + info->data = its; + inner_domain->host_data = info; +@@ -2966,7 +3004,7 @@ static int __init its_probe_one(struct resource *res, + } + its->cmd_write = its->cmd_base; + +- its_enable_quirks(its); ++ its_enable_quirks(its, handle); + + err = its_alloc_tables(its); + if (err) +-- +cgit v1.1 + From 26e7bb47b0fb03a01be1e391a08c7375b45335a2 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Mon, 21 Aug 2017 20:29:05 +0100 @@ -173,6 +325,7 @@ index c61be97..7d5a23e 100644 --- a/drivers/pci/dwc/Makefile +++ b/drivers/pci/dwc/Makefile @@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_PCIE_DW) += pcie-designware.o obj-$(CONFIG_PCIE_DW_HOST) += pcie-designware-host.o +obj-$(CONFIG_PCIE_DW_HOST_ECAM) += pcie-designware-ecam.o @@ -2896,3 +3049,51 @@ index 0000000..4695969 -- cgit v1.1 +From d2fc584f8237746a84e6ec8690d8884f148fc449 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 10 Oct 2017 11:35:51 +0100 +Subject: [PATCH] add interrupt.h, sort alphabetically + +Signed-off-by: Peter Robinson +--- + drivers/net/ethernet/socionext/netsec/netsec_platform.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/drivers/net/ethernet/socionext/netsec/netsec_platform.c b/drivers/net/ethernet/socionext/netsec/netsec_platform.c +index 624f6a7093f6..79072bae917d 100644 +--- a/drivers/net/ethernet/socionext/netsec/netsec_platform.c ++++ b/drivers/net/ethernet/socionext/netsec/netsec_platform.c +@@ -14,21 +14,22 @@ + */ + + #include +-#include +-#include +-#include +-#include + #include ++#include ++#include ++#include + #include ++#include ++#include + #include +-#include +-#include +-#include ++#include + #include + #include + #include +-#include ++#include + #include ++#include ++#include + + #include "netsec.h" + +-- +2.14.2 + diff --git a/arm64-xgene-acpi-fix.patch b/arm64-xgene-acpi-fix.patch deleted file mode 100644 index e0df833c0..000000000 --- a/arm64-xgene-acpi-fix.patch +++ /dev/null @@ -1,38 +0,0 @@ -From bdb9458a3382ba745a66be5526d3899103c76eda Mon Sep 17 00:00:00 2001 -From: Loc Ho -Date: Fri, 21 Jul 2017 11:24:37 -0700 -Subject: ACPI: APEI: Enable APEI multiple GHES source to share a single - external IRQ - -X-Gene platforms describe multiple GHES error sources with the same -hardware error notification type (external interrupt) and interrupt -number. - -Change the GHES interrupt request to support sharing the same IRQ. - -This change includs contributions from Tuan Phan . - -Signed-off-by: Loc Ho -Acked-by: Borislav Petkov -Signed-off-by: Rafael J. Wysocki ---- - drivers/acpi/apei/ghes.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c -index d661d45..eed09fc 100644 ---- a/drivers/acpi/apei/ghes.c -+++ b/drivers/acpi/apei/ghes.c -@@ -1157,7 +1157,8 @@ static int ghes_probe(struct platform_device *ghes_dev) - generic->header.source_id); - goto err_edac_unreg; - } -- rc = request_irq(ghes->irq, ghes_irq_func, 0, "GHES IRQ", ghes); -+ rc = request_irq(ghes->irq, ghes_irq_func, IRQF_SHARED, -+ "GHES IRQ", ghes); - if (rc) { - pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", - generic->header.source_id); --- -cgit v1.1 - diff --git a/baseconfig/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ b/baseconfig/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ new file mode 100644 index 000000000..40a287f0f --- /dev/null +++ b/baseconfig/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ @@ -0,0 +1 @@ +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y diff --git a/baseconfig/CONFIG_ALTERA_MSGDMA b/baseconfig/CONFIG_ALTERA_MSGDMA new file mode 100644 index 000000000..7a1edd837 --- /dev/null +++ b/baseconfig/CONFIG_ALTERA_MSGDMA @@ -0,0 +1 @@ +CONFIG_ALTERA_MSGDMA=m diff --git a/baseconfig/CONFIG_ATH10K_USB b/baseconfig/CONFIG_ATH10K_USB new file mode 100644 index 000000000..29021503d --- /dev/null +++ b/baseconfig/CONFIG_ATH10K_USB @@ -0,0 +1 @@ +CONFIG_ATH10K_USB=m diff --git a/baseconfig/CONFIG_BATTERY_MAX1721X b/baseconfig/CONFIG_BATTERY_MAX1721X new file mode 100644 index 000000000..98c04567c --- /dev/null +++ b/baseconfig/CONFIG_BATTERY_MAX1721X @@ -0,0 +1 @@ +# CONFIG_BATTERY_MAX1721X is not set diff --git a/baseconfig/CONFIG_BLK_CPQ_CISS_DA b/baseconfig/CONFIG_BLK_CPQ_CISS_DA deleted file mode 100644 index be7870097..000000000 --- a/baseconfig/CONFIG_BLK_CPQ_CISS_DA +++ /dev/null @@ -1 +0,0 @@ -CONFIG_BLK_CPQ_CISS_DA=m diff --git a/baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD b/baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD new file mode 100644 index 000000000..170bbf312 --- /dev/null +++ b/baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD @@ -0,0 +1 @@ +CONFIG_BNXT_FLOWER_OFFLOAD=y diff --git a/baseconfig/CONFIG_BPF_STREAM_PARSER b/baseconfig/CONFIG_BPF_STREAM_PARSER new file mode 100644 index 000000000..7cf783506 --- /dev/null +++ b/baseconfig/CONFIG_BPF_STREAM_PARSER @@ -0,0 +1 @@ +CONFIG_BPF_STREAM_PARSER=y diff --git a/baseconfig/CONFIG_CCS811 b/baseconfig/CONFIG_CCS811 new file mode 100644 index 000000000..931f14e2a --- /dev/null +++ b/baseconfig/CONFIG_CCS811 @@ -0,0 +1 @@ +# CONFIG_CCS811 is not set diff --git a/baseconfig/CONFIG_CEC_PIN b/baseconfig/CONFIG_CEC_PIN new file mode 100644 index 000000000..395ddfbf2 --- /dev/null +++ b/baseconfig/CONFIG_CEC_PIN @@ -0,0 +1 @@ +CONFIG_CEC_PIN=y diff --git a/baseconfig/CONFIG_CISS_SCSI_TAPE b/baseconfig/CONFIG_CISS_SCSI_TAPE deleted file mode 100644 index 2170cc840..000000000 --- a/baseconfig/CONFIG_CISS_SCSI_TAPE +++ /dev/null @@ -1 +0,0 @@ -CONFIG_CISS_SCSI_TAPE=y diff --git a/baseconfig/CONFIG_CLK_HSDK b/baseconfig/CONFIG_CLK_HSDK new file mode 100644 index 000000000..e1788bbc5 --- /dev/null +++ b/baseconfig/CONFIG_CLK_HSDK @@ -0,0 +1 @@ +# CONFIG_CLK_HSDK is not set diff --git a/baseconfig/CONFIG_CLOCK_THERMAL b/baseconfig/CONFIG_CLOCK_THERMAL new file mode 100644 index 000000000..72ca05f2c --- /dev/null +++ b/baseconfig/CONFIG_CLOCK_THERMAL @@ -0,0 +1 @@ +# CONFIG_CLOCK_THERMAL is not set diff --git a/baseconfig/CONFIG_CRYPTO_DEV_SP_CCP b/baseconfig/CONFIG_CRYPTO_DEV_SP_CCP new file mode 100644 index 000000000..c494dcc87 --- /dev/null +++ b/baseconfig/CONFIG_CRYPTO_DEV_SP_CCP @@ -0,0 +1 @@ +# CONFIG_CRYPTO_DEV_SP_CCP is not set diff --git a/baseconfig/CONFIG_DEVFREQ_THERMAL b/baseconfig/CONFIG_DEVFREQ_THERMAL new file mode 100644 index 000000000..5b90f9082 --- /dev/null +++ b/baseconfig/CONFIG_DEVFREQ_THERMAL @@ -0,0 +1 @@ +# CONFIG_DEVFREQ_THERMAL is not set diff --git a/baseconfig/CONFIG_DP83867_PHY b/baseconfig/CONFIG_DP83867_PHY index 5ba3d57bd..2bb3289c3 100644 --- a/baseconfig/CONFIG_DP83867_PHY +++ b/baseconfig/CONFIG_DP83867_PHY @@ -1 +1 @@ -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set diff --git a/baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE b/baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE new file mode 100644 index 000000000..4f0814b60 --- /dev/null +++ b/baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE @@ -0,0 +1 @@ +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set diff --git a/baseconfig/CONFIG_GPIO_BD9571MWV b/baseconfig/CONFIG_GPIO_BD9571MWV new file mode 100644 index 000000000..0cdd67b34 --- /dev/null +++ b/baseconfig/CONFIG_GPIO_BD9571MWV @@ -0,0 +1 @@ +CONFIG_GPIO_BD9571MWV=m diff --git a/baseconfig/CONFIG_GPIO_TPS68470 b/baseconfig/CONFIG_GPIO_TPS68470 new file mode 100644 index 000000000..3176e956e --- /dev/null +++ b/baseconfig/CONFIG_GPIO_TPS68470 @@ -0,0 +1 @@ +CONFIG_GPIO_TPS68470=y diff --git a/baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS b/baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS new file mode 100644 index 000000000..478415c11 --- /dev/null +++ b/baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS @@ -0,0 +1 @@ +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set diff --git a/baseconfig/CONFIG_INPUT_PWM_VIBRA b/baseconfig/CONFIG_INPUT_PWM_VIBRA new file mode 100644 index 000000000..39a51b490 --- /dev/null +++ b/baseconfig/CONFIG_INPUT_PWM_VIBRA @@ -0,0 +1 @@ +# CONFIG_INPUT_PWM_VIBRA is not set diff --git a/baseconfig/CONFIG_INPUT_RK805_PWRKEY b/baseconfig/CONFIG_INPUT_RK805_PWRKEY new file mode 100644 index 000000000..4ce96f558 --- /dev/null +++ b/baseconfig/CONFIG_INPUT_RK805_PWRKEY @@ -0,0 +1 @@ +CONFIG_INPUT_RK805_PWRKEY=m diff --git a/baseconfig/CONFIG_IP_DCCP b/baseconfig/CONFIG_IP_DCCP index 26ba41376..6ecb43a3e 100644 --- a/baseconfig/CONFIG_IP_DCCP +++ b/baseconfig/CONFIG_IP_DCCP @@ -1 +1 @@ -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set diff --git a/baseconfig/CONFIG_IR_GPIO_TX b/baseconfig/CONFIG_IR_GPIO_TX new file mode 100644 index 000000000..4b6b484bb --- /dev/null +++ b/baseconfig/CONFIG_IR_GPIO_TX @@ -0,0 +1 @@ +CONFIG_IR_GPIO_TX=m diff --git a/baseconfig/CONFIG_IR_PWM_TX b/baseconfig/CONFIG_IR_PWM_TX new file mode 100644 index 000000000..4dfd41870 --- /dev/null +++ b/baseconfig/CONFIG_IR_PWM_TX @@ -0,0 +1 @@ +CONFIG_IR_PWM_TX=m diff --git a/baseconfig/CONFIG_LEDS_AS3645A b/baseconfig/CONFIG_LEDS_AS3645A new file mode 100644 index 000000000..25d6f9f10 --- /dev/null +++ b/baseconfig/CONFIG_LEDS_AS3645A @@ -0,0 +1 @@ +CONFIG_LEDS_AS3645A=m diff --git a/baseconfig/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT b/baseconfig/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT new file mode 100644 index 000000000..336528547 --- /dev/null +++ b/baseconfig/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT @@ -0,0 +1 @@ +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set diff --git a/baseconfig/CONFIG_LTC2471 b/baseconfig/CONFIG_LTC2471 new file mode 100644 index 000000000..5d272ac29 --- /dev/null +++ b/baseconfig/CONFIG_LTC2471 @@ -0,0 +1 @@ +# CONFIG_LTC2471 is not set diff --git a/baseconfig/CONFIG_MDIO_I2C b/baseconfig/CONFIG_MDIO_I2C new file mode 100644 index 000000000..df7d9e025 --- /dev/null +++ b/baseconfig/CONFIG_MDIO_I2C @@ -0,0 +1 @@ +CONFIG_MDIO_I2C=m diff --git a/baseconfig/CONFIG_MFD_BD9571MWV b/baseconfig/CONFIG_MFD_BD9571MWV new file mode 100644 index 000000000..28d27a0e5 --- /dev/null +++ b/baseconfig/CONFIG_MFD_BD9571MWV @@ -0,0 +1 @@ +CONFIG_MFD_BD9571MWV=m diff --git a/baseconfig/CONFIG_MFD_TPS68470 b/baseconfig/CONFIG_MFD_TPS68470 new file mode 100644 index 000000000..10fd40465 --- /dev/null +++ b/baseconfig/CONFIG_MFD_TPS68470 @@ -0,0 +1 @@ +CONFIG_MFD_TPS68470=y diff --git a/baseconfig/CONFIG_MLX5_ESWITCH b/baseconfig/CONFIG_MLX5_ESWITCH new file mode 100644 index 000000000..8a69e0671 --- /dev/null +++ b/baseconfig/CONFIG_MLX5_ESWITCH @@ -0,0 +1 @@ +CONFIG_MLX5_ESWITCH=y diff --git a/baseconfig/CONFIG_MLX5_MPFS b/baseconfig/CONFIG_MLX5_MPFS new file mode 100644 index 000000000..6799ed484 --- /dev/null +++ b/baseconfig/CONFIG_MLX5_MPFS @@ -0,0 +1 @@ +CONFIG_MLX5_MPFS=y diff --git a/baseconfig/CONFIG_MMC_BLOCK_BOUNCE b/baseconfig/CONFIG_MMC_BLOCK_BOUNCE deleted file mode 100644 index 4470e8359..000000000 --- a/baseconfig/CONFIG_MMC_BLOCK_BOUNCE +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MMC_BLOCK_BOUNCE=y diff --git a/baseconfig/CONFIG_NET_NSH b/baseconfig/CONFIG_NET_NSH new file mode 100644 index 000000000..2a9a24e04 --- /dev/null +++ b/baseconfig/CONFIG_NET_NSH @@ -0,0 +1 @@ +CONFIG_NET_NSH=m diff --git a/baseconfig/CONFIG_NET_VENDOR_HUAWEI b/baseconfig/CONFIG_NET_VENDOR_HUAWEI new file mode 100644 index 000000000..ae01b9160 --- /dev/null +++ b/baseconfig/CONFIG_NET_VENDOR_HUAWEI @@ -0,0 +1 @@ +# CONFIG_NET_VENDOR_HUAWEI is not set diff --git a/baseconfig/CONFIG_NFT_FIB_NETDEV b/baseconfig/CONFIG_NFT_FIB_NETDEV new file mode 100644 index 000000000..273bfeb6a --- /dev/null +++ b/baseconfig/CONFIG_NFT_FIB_NETDEV @@ -0,0 +1 @@ +CONFIG_NFT_FIB_NETDEV=m diff --git a/baseconfig/CONFIG_PHYLINK b/baseconfig/CONFIG_PHYLINK new file mode 100644 index 000000000..cc1e23e0b --- /dev/null +++ b/baseconfig/CONFIG_PHYLINK @@ -0,0 +1 @@ +CONFIG_PHYLINK=m diff --git a/baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY b/baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY new file mode 100644 index 000000000..8c104689f --- /dev/null +++ b/baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY @@ -0,0 +1 @@ +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set diff --git a/baseconfig/CONFIG_PI433 b/baseconfig/CONFIG_PI433 new file mode 100644 index 000000000..b275e1e6a --- /dev/null +++ b/baseconfig/CONFIG_PI433 @@ -0,0 +1 @@ +# CONFIG_PI433 is not set diff --git a/baseconfig/CONFIG_PINCTRL_RK805 b/baseconfig/CONFIG_PINCTRL_RK805 new file mode 100644 index 000000000..47b4fd855 --- /dev/null +++ b/baseconfig/CONFIG_PINCTRL_RK805 @@ -0,0 +1 @@ +CONFIG_PINCTRL_RK805=m diff --git a/baseconfig/CONFIG_PINCTRL_SPRD b/baseconfig/CONFIG_PINCTRL_SPRD new file mode 100644 index 000000000..cffa73544 --- /dev/null +++ b/baseconfig/CONFIG_PINCTRL_SPRD @@ -0,0 +1 @@ +# CONFIG_PINCTRL_SPRD is not set diff --git a/baseconfig/CONFIG_PINCTRL_SPRD_SC9860 b/baseconfig/CONFIG_PINCTRL_SPRD_SC9860 new file mode 100644 index 000000000..f9b405f96 --- /dev/null +++ b/baseconfig/CONFIG_PINCTRL_SPRD_SC9860 @@ -0,0 +1 @@ +# CONFIG_PINCTRL_SPRD_SC9860 is not set diff --git a/baseconfig/CONFIG_PM_OPP b/baseconfig/CONFIG_PM_OPP index a77bd27f8..bbe2b56ba 100644 --- a/baseconfig/CONFIG_PM_OPP +++ b/baseconfig/CONFIG_PM_OPP @@ -1 +1 @@ -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y diff --git a/baseconfig/CONFIG_QCOM_GLINK_SSR b/baseconfig/CONFIG_QCOM_GLINK_SSR new file mode 100644 index 000000000..1c67b32f7 --- /dev/null +++ b/baseconfig/CONFIG_QCOM_GLINK_SSR @@ -0,0 +1 @@ +# CONFIG_QCOM_GLINK_SSR is not set diff --git a/baseconfig/CONFIG_R8822BE b/baseconfig/CONFIG_R8822BE new file mode 100644 index 000000000..2f7c08787 --- /dev/null +++ b/baseconfig/CONFIG_R8822BE @@ -0,0 +1 @@ +CONFIG_R8822BE=m diff --git a/baseconfig/CONFIG_REGULATOR_BD9571MWV b/baseconfig/CONFIG_REGULATOR_BD9571MWV new file mode 100644 index 000000000..3b0acb786 --- /dev/null +++ b/baseconfig/CONFIG_REGULATOR_BD9571MWV @@ -0,0 +1 @@ +CONFIG_REGULATOR_BD9571MWV=m diff --git a/baseconfig/CONFIG_RESET_ATTACK_MITIGATION b/baseconfig/CONFIG_RESET_ATTACK_MITIGATION new file mode 100644 index 000000000..8202a7865 --- /dev/null +++ b/baseconfig/CONFIG_RESET_ATTACK_MITIGATION @@ -0,0 +1 @@ +CONFIG_RESET_ATTACK_MITIGATION=y diff --git a/baseconfig/CONFIG_RESET_HSDK_V1 b/baseconfig/CONFIG_RESET_HSDK_V1 new file mode 100644 index 000000000..4c2b97d79 --- /dev/null +++ b/baseconfig/CONFIG_RESET_HSDK_V1 @@ -0,0 +1 @@ +# CONFIG_RESET_HSDK_V1 is not set diff --git a/baseconfig/CONFIG_RMNET b/baseconfig/CONFIG_RMNET new file mode 100644 index 000000000..5e8c115b5 --- /dev/null +++ b/baseconfig/CONFIG_RMNET @@ -0,0 +1 @@ +# CONFIG_RMNET is not set diff --git a/baseconfig/CONFIG_ROCKCHIP_PHY b/baseconfig/CONFIG_ROCKCHIP_PHY new file mode 100644 index 000000000..4ca60873a --- /dev/null +++ b/baseconfig/CONFIG_ROCKCHIP_PHY @@ -0,0 +1 @@ +# CONFIG_ROCKCHIP_PHY is not set diff --git a/baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM b/baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM new file mode 100644 index 000000000..c2c0a0c78 --- /dev/null +++ b/baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM @@ -0,0 +1 @@ +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set diff --git a/baseconfig/CONFIG_SENSORS_IBM_CFFPS b/baseconfig/CONFIG_SENSORS_IBM_CFFPS new file mode 100644 index 000000000..a217d973e --- /dev/null +++ b/baseconfig/CONFIG_SENSORS_IBM_CFFPS @@ -0,0 +1 @@ +# CONFIG_SENSORS_IBM_CFFPS is not set diff --git a/baseconfig/CONFIG_SENSORS_TPS53679 b/baseconfig/CONFIG_SENSORS_TPS53679 new file mode 100644 index 000000000..461a703df --- /dev/null +++ b/baseconfig/CONFIG_SENSORS_TPS53679 @@ -0,0 +1 @@ +CONFIG_SENSORS_TPS53679=m diff --git a/baseconfig/CONFIG_SERIO_GPIO_PS2 b/baseconfig/CONFIG_SERIO_GPIO_PS2 new file mode 100644 index 000000000..22c1adbfb --- /dev/null +++ b/baseconfig/CONFIG_SERIO_GPIO_PS2 @@ -0,0 +1 @@ +# CONFIG_SERIO_GPIO_PS2 is not set diff --git a/baseconfig/CONFIG_SFP b/baseconfig/CONFIG_SFP new file mode 100644 index 000000000..db57db12e --- /dev/null +++ b/baseconfig/CONFIG_SFP @@ -0,0 +1 @@ +CONFIG_SFP=m diff --git a/baseconfig/CONFIG_SLAB_FREELIST_HARDENED b/baseconfig/CONFIG_SLAB_FREELIST_HARDENED new file mode 100644 index 000000000..52602d279 --- /dev/null +++ b/baseconfig/CONFIG_SLAB_FREELIST_HARDENED @@ -0,0 +1 @@ +CONFIG_SLAB_FREELIST_HARDENED=y diff --git a/baseconfig/CONFIG_SND_BCD2000 b/baseconfig/CONFIG_SND_BCD2000 index b56c9162f..0a60c490b 100644 --- a/baseconfig/CONFIG_SND_BCD2000 +++ b/baseconfig/CONFIG_SND_BCD2000 @@ -1 +1 @@ -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set diff --git a/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT b/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT index ce02ec981..ba018972d 100644 --- a/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT +++ b/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT @@ -1 +1 @@ -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 diff --git a/baseconfig/CONFIG_SND_SOC_CS43130 b/baseconfig/CONFIG_SND_SOC_CS43130 new file mode 100644 index 000000000..3fad16f6d --- /dev/null +++ b/baseconfig/CONFIG_SND_SOC_CS43130 @@ -0,0 +1 @@ +CONFIG_SND_SOC_CS43130=m diff --git a/baseconfig/CONFIG_SND_SOC_WM8524 b/baseconfig/CONFIG_SND_SOC_WM8524 new file mode 100644 index 000000000..1eb33d7e5 --- /dev/null +++ b/baseconfig/CONFIG_SND_SOC_WM8524 @@ -0,0 +1 @@ +CONFIG_SND_SOC_WM8524=m diff --git a/baseconfig/CONFIG_SQUASHFS_ZSTD b/baseconfig/CONFIG_SQUASHFS_ZSTD new file mode 100644 index 000000000..023fb21e0 --- /dev/null +++ b/baseconfig/CONFIG_SQUASHFS_ZSTD @@ -0,0 +1 @@ +CONFIG_SQUASHFS_ZSTD=y diff --git a/baseconfig/CONFIG_STRING_SELFTEST b/baseconfig/CONFIG_STRING_SELFTEST new file mode 100644 index 000000000..dbff6d7fa --- /dev/null +++ b/baseconfig/CONFIG_STRING_SELFTEST @@ -0,0 +1 @@ +# CONFIG_STRING_SELFTEST is not set diff --git a/baseconfig/CONFIG_W1_SLAVE_DS2805 b/baseconfig/CONFIG_W1_SLAVE_DS2805 new file mode 100644 index 000000000..eddd3bbb3 --- /dev/null +++ b/baseconfig/CONFIG_W1_SLAVE_DS2805 @@ -0,0 +1 @@ +CONFIG_W1_SLAVE_DS2805=m diff --git a/baseconfig/CONFIG_WIL6210_DEBUGFS b/baseconfig/CONFIG_WIL6210_DEBUGFS new file mode 100644 index 000000000..f0f5fe7cf --- /dev/null +++ b/baseconfig/CONFIG_WIL6210_DEBUGFS @@ -0,0 +1 @@ +CONFIG_WIL6210_DEBUGFS=y diff --git a/baseconfig/CONFIG_ZRAM_WRITEBACK b/baseconfig/CONFIG_ZRAM_WRITEBACK new file mode 100644 index 000000000..9a566b71c --- /dev/null +++ b/baseconfig/CONFIG_ZRAM_WRITEBACK @@ -0,0 +1 @@ +# CONFIG_ZRAM_WRITEBACK is not set diff --git a/baseconfig/arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG b/baseconfig/arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG new file mode 100644 index 000000000..62fd0b85a --- /dev/null +++ b/baseconfig/arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG @@ -0,0 +1 @@ +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y diff --git a/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 b/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 index ba32f8501..3aa7dacbf 100644 --- a/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 +++ b/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 @@ -1 +1 @@ -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y diff --git a/baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC b/baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC new file mode 100644 index 000000000..a3e178eae --- /dev/null +++ b/baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC @@ -0,0 +1 @@ +CONFIG_DRM_DW_HDMI_CEC=m diff --git a/baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC b/baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC new file mode 100644 index 000000000..da0132c1f --- /dev/null +++ b/baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC @@ -0,0 +1 @@ +CONFIG_DRM_VC4_HDMI_CEC=y diff --git a/baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC b/baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC new file mode 100644 index 000000000..831bc6ea7 --- /dev/null +++ b/baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC @@ -0,0 +1 @@ +CONFIG_EXTCON_USBC_CROS_EC=m diff --git a/baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC b/baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC new file mode 100644 index 000000000..e7b39a2c7 --- /dev/null +++ b/baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC @@ -0,0 +1 @@ +CONFIG_HW_RANDOM_IMX_RNGC=m diff --git a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE index 661ffb01a..f9cdc633b 100644 --- a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE +++ b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE @@ -1 +1 @@ -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y diff --git a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM index cec2f8633..3d50a3e8a 100644 --- a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM +++ b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM @@ -1 +1 @@ -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y diff --git a/baseconfig/arm/CONFIG_MESON_GX_SOCINFO b/baseconfig/arm/CONFIG_MESON_GX_SOCINFO new file mode 100644 index 000000000..ce5ba6f4a --- /dev/null +++ b/baseconfig/arm/CONFIG_MESON_GX_SOCINFO @@ -0,0 +1 @@ +CONFIG_MESON_GX_SOCINFO=y diff --git a/baseconfig/arm/armv7/CONFIG_MTD_NAND_PXA3xx b/baseconfig/arm/CONFIG_MTD_NAND_PXA3xx similarity index 100% rename from baseconfig/arm/armv7/CONFIG_MTD_NAND_PXA3xx rename to baseconfig/arm/CONFIG_MTD_NAND_PXA3xx diff --git a/baseconfig/arm/CONFIG_ROCKCHIP_PHY b/baseconfig/arm/CONFIG_ROCKCHIP_PHY new file mode 100644 index 000000000..e49faf8f9 --- /dev/null +++ b/baseconfig/arm/CONFIG_ROCKCHIP_PHY @@ -0,0 +1 @@ +CONFIG_ROCKCHIP_PHY=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_AC97 b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_AC97 similarity index 100% rename from baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_AC97 rename to baseconfig/arm/CONFIG_SND_SOC_TEGRA20_AC97 diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_DAS b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_DAS similarity index 100% rename from baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_DAS rename to baseconfig/arm/CONFIG_SND_SOC_TEGRA20_DAS diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA20_I2S b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_I2S similarity index 100% rename from baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA20_I2S rename to baseconfig/arm/CONFIG_SND_SOC_TEGRA20_I2S diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_SPDIF b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_SPDIF similarity index 100% rename from baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_SPDIF rename to baseconfig/arm/CONFIG_SND_SOC_TEGRA20_SPDIF diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_AHUB b/baseconfig/arm/CONFIG_SND_SOC_TEGRA30_AHUB similarity index 100% rename from baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_AHUB rename to baseconfig/arm/CONFIG_SND_SOC_TEGRA30_AHUB diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_I2S b/baseconfig/arm/CONFIG_SND_SOC_TEGRA30_I2S similarity index 100% rename from baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_I2S rename to baseconfig/arm/CONFIG_SND_SOC_TEGRA30_I2S diff --git a/baseconfig/arm/CONFIG_TINYDRM_REPAPER b/baseconfig/arm/CONFIG_TINYDRM_REPAPER new file mode 100644 index 000000000..c4d2874fa --- /dev/null +++ b/baseconfig/arm/CONFIG_TINYDRM_REPAPER @@ -0,0 +1 @@ +# CONFIG_TINYDRM_REPAPER is not set diff --git a/baseconfig/arm/CONFIG_TINYDRM_ST7586 b/baseconfig/arm/CONFIG_TINYDRM_ST7586 new file mode 100644 index 000000000..2b9e29f63 --- /dev/null +++ b/baseconfig/arm/CONFIG_TINYDRM_ST7586 @@ -0,0 +1 @@ +# CONFIG_TINYDRM_ST7586 is not set diff --git a/baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC b/baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC new file mode 100644 index 000000000..499a44076 --- /dev/null +++ b/baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC @@ -0,0 +1 @@ +CONFIG_VIDEO_MESON_AO_CEC=m diff --git a/baseconfig/arm/arm64/CONFIG_ARM64_PMEM b/baseconfig/arm/arm64/CONFIG_ARM64_PMEM new file mode 100644 index 000000000..9325600d1 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_ARM64_PMEM @@ -0,0 +1 @@ +# CONFIG_ARM64_PMEM is not set diff --git a/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 b/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 index 113c72b8c..dd0ae2c1d 100644 --- a/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 +++ b/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 @@ -1 +1 @@ -CONFIG_CRYPTO_AES_ARM64=m +CONFIG_CRYPTO_AES_ARM64=y diff --git a/baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX b/baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX new file mode 100644 index 000000000..6895cc045 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX @@ -0,0 +1 @@ +CONFIG_GPIO_THUNDERX=m diff --git a/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML b/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML index 059d0d4f2..48facf367 100644 --- a/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML +++ b/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML @@ -1 +1 @@ -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y diff --git a/baseconfig/arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY b/baseconfig/arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY new file mode 100644 index 000000000..1902b0c1f --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY @@ -0,0 +1 @@ +CONFIG_PHY_MVEBU_CP110_COMPHY=m diff --git a/baseconfig/arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS b/baseconfig/arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS new file mode 100644 index 000000000..213edb5a1 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS @@ -0,0 +1 @@ +# CONFIG_USB_CONFIGFS_F_LB_SS is not set diff --git a/baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS b/baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS new file mode 100644 index 000000000..5e2512c4c --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS @@ -0,0 +1 @@ +CONFIG_VIDEO_QCOM_CAMSS=m diff --git a/baseconfig/arm/arm64/CONFIG_VMAP_STACK b/baseconfig/arm/arm64/CONFIG_VMAP_STACK new file mode 100644 index 000000000..8bd986875 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_VMAP_STACK @@ -0,0 +1 @@ +CONFIG_VMAP_STACK=y diff --git a/baseconfig/arm/CONFIG_DRM_SUN4I_BACKEND b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_BACKEND similarity index 100% rename from baseconfig/arm/CONFIG_DRM_SUN4I_BACKEND rename to baseconfig/arm/armv7/CONFIG_DRM_SUN4I_BACKEND diff --git a/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC new file mode 100644 index 000000000..8ba73409c --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC @@ -0,0 +1 @@ +# CONFIG_DRM_SUN4I_HDMI_CEC is not set diff --git a/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML b/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML deleted file mode 100644 index 059d0d4f2..000000000 --- a/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MMC_QCOM_DML=m diff --git a/baseconfig/arm/armv7/CONFIG_PWM_TIECAP b/baseconfig/arm/armv7/CONFIG_PWM_TIECAP new file mode 100644 index 000000000..84f1e9b57 --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_PWM_TIECAP @@ -0,0 +1 @@ +CONFIG_PWM_TIECAP=m diff --git a/baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X b/baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X deleted file mode 100644 index 7dcdafcbb..000000000 --- a/baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X +++ /dev/null @@ -1 +0,0 @@ -CONFIG_RTC_DRV_ARMADA38X=m diff --git a/baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU b/baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU new file mode 100644 index 000000000..3b2ba681a --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU @@ -0,0 +1 @@ +CONFIG_SUN4I_A10_CCU=y diff --git a/baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU b/baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU new file mode 100644 index 000000000..149900927 --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU @@ -0,0 +1 @@ +CONFIG_SUN8I_R40_CCU=y diff --git a/baseconfig/arm/armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ b/baseconfig/arm/armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ new file mode 100644 index 000000000..2be078588 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ @@ -0,0 +1 @@ +CONFIG_BATTERY_BQ27XXX_HDQ=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC b/baseconfig/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC new file mode 100644 index 000000000..53983d8af --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC @@ -0,0 +1 @@ +CONFIG_IMX_REMOTEPROC=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML b/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML index 059d0d4f2..48facf367 100644 --- a/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML +++ b/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML @@ -1 +1 @@ -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y diff --git a/baseconfig/arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS b/baseconfig/arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS new file mode 100644 index 000000000..5e2512c4c --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS @@ -0,0 +1 @@ +CONFIG_VIDEO_QCOM_CAMSS=m diff --git a/baseconfig/arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS b/baseconfig/arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS deleted file mode 100644 index 71a38a48c..000000000 --- a/baseconfig/arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_SND_SOC_TEGRA20_DAS is not set diff --git a/baseconfig/powerpc/CONFIG_PPC_MEMTRACE b/baseconfig/powerpc/CONFIG_PPC_MEMTRACE new file mode 100644 index 000000000..c783714d8 --- /dev/null +++ b/baseconfig/powerpc/CONFIG_PPC_MEMTRACE @@ -0,0 +1 @@ +# CONFIG_PPC_MEMTRACE is not set diff --git a/baseconfig/powerpc/CONFIG_PPC_VAS b/baseconfig/powerpc/CONFIG_PPC_VAS new file mode 100644 index 000000000..ec767da00 --- /dev/null +++ b/baseconfig/powerpc/CONFIG_PPC_VAS @@ -0,0 +1 @@ +CONFIG_PPC_VAS=y diff --git a/baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS b/baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS new file mode 100644 index 000000000..31f260384 --- /dev/null +++ b/baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS @@ -0,0 +1 @@ +CONFIG_SENSORS_IBM_CFFPS=m diff --git a/baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA b/baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA deleted file mode 100644 index 2e6c723ac..000000000 --- a/baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_BLK_CPQ_CISS_DA is not set diff --git a/baseconfig/s390x/CONFIG_CMA b/baseconfig/s390x/CONFIG_CMA new file mode 100644 index 000000000..309c9e771 --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA @@ -0,0 +1 @@ +CONFIG_CMA=y diff --git a/baseconfig/s390x/CONFIG_CMA_AREAS b/baseconfig/s390x/CONFIG_CMA_AREAS new file mode 100644 index 000000000..5474a48e9 --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA_AREAS @@ -0,0 +1 @@ +CONFIG_CMA_AREAS=7 diff --git a/baseconfig/s390x/CONFIG_CMA_DEBUG b/baseconfig/s390x/CONFIG_CMA_DEBUG new file mode 100644 index 000000000..64ff80c56 --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA_DEBUG @@ -0,0 +1 @@ +# CONFIG_CMA_DEBUG is not set diff --git a/baseconfig/s390x/CONFIG_CMA_DEBUGFS b/baseconfig/s390x/CONFIG_CMA_DEBUGFS new file mode 100644 index 000000000..fba89903a --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA_DEBUGFS @@ -0,0 +1 @@ +# CONFIG_CMA_DEBUGFS is not set diff --git a/baseconfig/s390x/CONFIG_MFD_BD9571MWV b/baseconfig/s390x/CONFIG_MFD_BD9571MWV new file mode 100644 index 000000000..d321ad3c6 --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_BD9571MWV @@ -0,0 +1 @@ +# CONFIG_MFD_BD9571MWV is not set diff --git a/baseconfig/s390x/CONFIG_MFD_RTSX_USB b/baseconfig/s390x/CONFIG_MFD_RTSX_USB new file mode 100644 index 000000000..b6efa65e7 --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_RTSX_USB @@ -0,0 +1 @@ +# CONFIG_MFD_RTSX_USB is not set diff --git a/baseconfig/s390x/CONFIG_MFD_TPS68470 b/baseconfig/s390x/CONFIG_MFD_TPS68470 new file mode 100644 index 000000000..e82f415aa --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_TPS68470 @@ -0,0 +1 @@ +# CONFIG_MFD_TPS68470 is not set diff --git a/baseconfig/s390x/CONFIG_MFD_VIPERBOARD b/baseconfig/s390x/CONFIG_MFD_VIPERBOARD new file mode 100644 index 000000000..1d4d00579 --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_VIPERBOARD @@ -0,0 +1 @@ +# CONFIG_MFD_VIPERBOARD is not set diff --git a/baseconfig/s390x/CONFIG_VMCP_CMA_SIZE b/baseconfig/s390x/CONFIG_VMCP_CMA_SIZE new file mode 100644 index 000000000..aee0667ac --- /dev/null +++ b/baseconfig/s390x/CONFIG_VMCP_CMA_SIZE @@ -0,0 +1 @@ +CONFIG_VMCP_CMA_SIZE=4 diff --git a/baseconfig/x86/CONFIG_CONFIG_PINCTRL_LEWISBURG b/baseconfig/x86/CONFIG_CONFIG_PINCTRL_LEWISBURG new file mode 100644 index 000000000..c2c51192e --- /dev/null +++ b/baseconfig/x86/CONFIG_CONFIG_PINCTRL_LEWISBURG @@ -0,0 +1 @@ +CONFIG_PINCTRL_LEWISBURG=m diff --git a/baseconfig/x86/CONFIG_HYPERV_VSOCKETS b/baseconfig/x86/CONFIG_HYPERV_VSOCKETS new file mode 100644 index 000000000..bd21cd675 --- /dev/null +++ b/baseconfig/x86/CONFIG_HYPERV_VSOCKETS @@ -0,0 +1 @@ +CONFIG_HYPERV_VSOCKETS=m diff --git a/baseconfig/x86/CONFIG_INTEL_RDT b/baseconfig/x86/CONFIG_INTEL_RDT new file mode 100644 index 000000000..0dcef9a32 --- /dev/null +++ b/baseconfig/x86/CONFIG_INTEL_RDT @@ -0,0 +1 @@ +CONFIG_INTEL_RDT=y diff --git a/baseconfig/x86/CONFIG_MAXSMP b/baseconfig/x86/CONFIG_MAXSMP index 8d0fa581d..d0d71de53 100644 --- a/baseconfig/x86/CONFIG_MAXSMP +++ b/baseconfig/x86/CONFIG_MAXSMP @@ -1 +1 @@ -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set diff --git a/baseconfig/x86/CONFIG_PINCTRL_DENVERTON b/baseconfig/x86/CONFIG_PINCTRL_DENVERTON new file mode 100644 index 000000000..ec6b4e8e1 --- /dev/null +++ b/baseconfig/x86/CONFIG_PINCTRL_DENVERTON @@ -0,0 +1 @@ +CONFIG_PINCTRL_DENVERTON=m diff --git a/baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND b/baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND new file mode 100644 index 000000000..3a5b2c46d --- /dev/null +++ b/baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND @@ -0,0 +1 @@ +# CONFIG_XEN_PVCALLS_BACKEND is not set diff --git a/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT new file mode 100644 index 000000000..f9eacfabc --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT @@ -0,0 +1 @@ +CONFIG_AMD_MEM_ENCRYPT=y diff --git a/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT new file mode 100644 index 000000000..e41f0cf8f --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT @@ -0,0 +1 @@ +# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set diff --git a/baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE b/baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE new file mode 100644 index 000000000..ef0a4ad5b --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE @@ -0,0 +1 @@ +CONFIG_DEVICE_PRIVATE=y diff --git a/baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC b/baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC new file mode 100644 index 000000000..c790e941b --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC @@ -0,0 +1 @@ +CONFIG_DEVICE_PUBLIC=y diff --git a/baseconfig/x86/x86_64/CONFIG_HMM_MIRROR b/baseconfig/x86/x86_64/CONFIG_HMM_MIRROR new file mode 100644 index 000000000..11dfee6c1 --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_HMM_MIRROR @@ -0,0 +1 @@ +CONFIG_HMM_MIRROR=y diff --git a/baseconfig/x86/x86_64/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT b/baseconfig/x86/x86_64/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT new file mode 100644 index 000000000..4a06cfcc2 --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT @@ -0,0 +1 @@ +CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y diff --git a/baseconfig/x86/x86_64/CONFIG_NR_CPUS b/baseconfig/x86/x86_64/CONFIG_NR_CPUS index 441191641..27d187f4d 100644 --- a/baseconfig/x86/x86_64/CONFIG_NR_CPUS +++ b/baseconfig/x86/x86_64/CONFIG_NR_CPUS @@ -1 +1 @@ -CONFIG_NR_CPUS=8192 +CONFIG_NR_CPUS=1024 diff --git a/baseconfig/x86/x86_64/CONFIG_X86_5LEVEL b/baseconfig/x86/x86_64/CONFIG_X86_5LEVEL new file mode 100644 index 000000000..db301f396 --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_X86_5LEVEL @@ -0,0 +1 @@ +# CONFIG_X86_5LEVEL is not set diff --git a/bcm2837-bluetooth-support.patch b/bcm2837-bluetooth-support.patch index bdba4aa28..c272c1efe 100644 --- a/bcm2837-bluetooth-support.patch +++ b/bcm2837-bluetooth-support.patch @@ -1,597 +1,3 @@ -From 98dc77d57169f51d100f8b0cb3e4d1e0911ef7a4 Mon Sep 17 00:00:00 2001 -From: Loic Poulain -Date: Tue, 4 Jul 2017 12:57:56 +0200 -Subject: Bluetooth: hci_bcm: Make bcm_request_irq fail if no IRQ resource - -In case of no IRQ resource associated to the bcm_device, requesting -IRQ should return an error in order to not enable low power mgmt. - -Signed-off-by: Loic Poulain -Reported-by: Ian Molton -Signed-off-by: Marcel Holtmann ---- - drivers/bluetooth/hci_bcm.c | 30 ++++++++++++++++-------------- - 1 file changed, 16 insertions(+), 14 deletions(-) - -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 6a662d0..6b42372 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -176,7 +176,7 @@ static irqreturn_t bcm_host_wake(int irq, void *data) - static int bcm_request_irq(struct bcm_data *bcm) - { - struct bcm_device *bdev = bcm->dev; -- int err = 0; -+ int err; - - /* If this is not a platform device, do not enable PM functionalities */ - mutex_lock(&bcm_device_lock); -@@ -185,21 +185,23 @@ static int bcm_request_irq(struct bcm_data *bcm) - goto unlock; - } - -- if (bdev->irq > 0) { -- err = devm_request_irq(&bdev->pdev->dev, bdev->irq, -- bcm_host_wake, IRQF_TRIGGER_RISING, -- "host_wake", bdev); -- if (err) -- goto unlock; -+ if (bdev->irq <= 0) { -+ err = -EOPNOTSUPP; -+ goto unlock; -+ } - -- device_init_wakeup(&bdev->pdev->dev, true); -+ err = devm_request_irq(&bdev->pdev->dev, bdev->irq, bcm_host_wake, -+ IRQF_TRIGGER_RISING, "host_wake", bdev); -+ if (err) -+ goto unlock; - -- pm_runtime_set_autosuspend_delay(&bdev->pdev->dev, -- BCM_AUTOSUSPEND_DELAY); -- pm_runtime_use_autosuspend(&bdev->pdev->dev); -- pm_runtime_set_active(&bdev->pdev->dev); -- pm_runtime_enable(&bdev->pdev->dev); -- } -+ device_init_wakeup(&bdev->pdev->dev, true); -+ -+ pm_runtime_set_autosuspend_delay(&bdev->pdev->dev, -+ BCM_AUTOSUSPEND_DELAY); -+ pm_runtime_use_autosuspend(&bdev->pdev->dev); -+ pm_runtime_set_active(&bdev->pdev->dev); -+ pm_runtime_enable(&bdev->pdev->dev); - - unlock: - mutex_unlock(&bcm_device_lock); --- -cgit v1.1 - -From 74183a1c50a3c61e62d2e585107ea3c0b942a3ff Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Wed, 16 Aug 2017 09:53:30 +0200 -Subject: Bluetooth: hci_bcm: Use operation speed of 4Mbps only for ACPI - devices - -Not all Broadcom controller support the 4Mbps operational speed on UART -devices. This is because the UART clock setting changes might not be -supported. - - < HCI Command: Broadcom Write UART Clock Setting (0x3f|0x0045) plen 1 - 01 . - > HCI Event: Command Complete (0x0e) plen 4 - Broadcom Write UART Clock Setting (0x3f|0x0045) ncmd 1 - Status: Unknown HCI Command (0x01) - -To support any operational speed higher than 3Mbps, support for this -command is required. With that respect it is better to not enforce any -operational speed by default. Only when its support is known, then allow -for higher operational speed. - -This patch assigns the 4Mbps opertional speed only for devices -discovered through ACPI and leave all others at the default 115200. - -Signed-off-by: Marcel Holtmann -Signed-off-by: Johan Hedberg ---- - drivers/bluetooth/hci_bcm.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 6b42372..1eb286a 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -59,6 +59,7 @@ struct bcm_device { - bool clk_enabled; - - u32 init_speed; -+ u32 oper_speed; - int irq; - u8 irq_polarity; - -@@ -303,6 +304,7 @@ static int bcm_open(struct hci_uart *hu) - if (hu->tty->dev->parent == dev->pdev->dev.parent) { - bcm->dev = dev; - hu->init_speed = dev->init_speed; -+ hu->oper_speed = dev->oper_speed; - #ifdef CONFIG_PM - dev->hu = hu; - #endif -@@ -699,8 +701,10 @@ static int bcm_resource(struct acpi_resource *ares, void *data) - - case ACPI_RESOURCE_TYPE_SERIAL_BUS: - sb = &ares->data.uart_serial_bus; -- if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_UART) -+ if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_UART) { - dev->init_speed = sb->default_baud_rate; -+ dev->oper_speed = 4000000; -+ } - break; - - default: -@@ -853,7 +857,6 @@ static const struct hci_uart_proto bcm_proto = { - .name = "Broadcom", - .manufacturer = 15, - .init_speed = 115200, -- .oper_speed = 4000000, - .open = bcm_open, - .close = bcm_close, - .flush = bcm_flush, --- -cgit v1.1 - -From 33cd149e767be9afbab9fcd3d5165a2de62313c8 Mon Sep 17 00:00:00 2001 -From: Loic Poulain -Date: Thu, 17 Aug 2017 19:59:51 +0200 -Subject: Bluetooth: hci_bcm: Add serdev support - -Add basic support for Broadcom serial slave devices. -Probe the serial device, retrieve its maximum speed and -register a new hci uart device. - -Tested/compatible with bcm43438 (RPi3). - -Signed-off-by: Loic Poulain -Signed-off-by: Marcel Holtmann ---- - drivers/bluetooth/Kconfig | 1 + - drivers/bluetooth/hci_bcm.c | 85 +++++++++++++++++++++++++++++++++++++++++++-- - 2 files changed, 84 insertions(+), 2 deletions(-) - -diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig -index 3a6ead6..fae5a74 100644 ---- a/drivers/bluetooth/Kconfig -+++ b/drivers/bluetooth/Kconfig -@@ -168,6 +168,7 @@ config BT_HCIUART_INTEL - config BT_HCIUART_BCM - bool "Broadcom protocol support" - depends on BT_HCIUART -+ depends on BT_HCIUART_SERDEV - select BT_HCIUART_H4 - select BT_BCM - help -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 1eb286a..34882f1 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -27,6 +27,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -34,6 +36,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -46,6 +49,7 @@ - - #define BCM_AUTOSUSPEND_DELAY 5000 /* default autosleep delay */ - -+/* platform device driver resources */ - struct bcm_device { - struct list_head list; - -@@ -69,6 +73,12 @@ struct bcm_device { - #endif - }; - -+/* serdev driver resources */ -+struct bcm_serdev { -+ struct hci_uart hu; -+}; -+ -+/* generic bcm uart resources */ - struct bcm_data { - struct sk_buff *rx_skb; - struct sk_buff_head txq; -@@ -80,6 +90,14 @@ struct bcm_data { - static DEFINE_MUTEX(bcm_device_lock); - static LIST_HEAD(bcm_device_list); - -+static inline void host_set_baudrate(struct hci_uart *hu, unsigned int speed) -+{ -+ if (hu->serdev) -+ serdev_device_set_baudrate(hu->serdev, speed); -+ else -+ hci_uart_set_baudrate(hu, speed); -+} -+ - static int bcm_set_baudrate(struct hci_uart *hu, unsigned int speed) - { - struct hci_dev *hdev = hu->hdev; -@@ -290,6 +308,14 @@ static int bcm_open(struct hci_uart *hu) - - hu->priv = bcm; - -+ /* If this is a serdev defined device, then only use -+ * serdev open primitive and skip the rest. -+ */ -+ if (hu->serdev) { -+ serdev_device_open(hu->serdev); -+ goto out; -+ } -+ - if (!hu->tty->dev) - goto out; - -@@ -325,6 +351,12 @@ static int bcm_close(struct hci_uart *hu) - - bt_dev_dbg(hu->hdev, "hu %p", hu); - -+ /* If this is a serdev defined device, only use serdev -+ * close primitive and then continue as usual. -+ */ -+ if (hu->serdev) -+ serdev_device_close(hu->serdev); -+ - /* Protect bcm->dev against removal of the device or driver */ - mutex_lock(&bcm_device_lock); - if (bcm_device_exists(bdev)) { -@@ -400,7 +432,7 @@ static int bcm_setup(struct hci_uart *hu) - speed = 0; - - if (speed) -- hci_uart_set_baudrate(hu, speed); -+ host_set_baudrate(hu, speed); - - /* Operational speed if any */ - if (hu->oper_speed) -@@ -413,7 +445,7 @@ static int bcm_setup(struct hci_uart *hu) - if (speed) { - err = bcm_set_baudrate(hu, speed); - if (!err) -- hci_uart_set_baudrate(hu, speed); -+ host_set_baudrate(hu, speed); - } - - finalize: -@@ -906,9 +938,57 @@ static struct platform_driver bcm_driver = { - }, - }; - -+static int bcm_serdev_probe(struct serdev_device *serdev) -+{ -+ struct bcm_serdev *bcmdev; -+ u32 speed; -+ int err; -+ -+ bcmdev = devm_kzalloc(&serdev->dev, sizeof(*bcmdev), GFP_KERNEL); -+ if (!bcmdev) -+ return -ENOMEM; -+ -+ bcmdev->hu.serdev = serdev; -+ serdev_device_set_drvdata(serdev, bcmdev); -+ -+ err = device_property_read_u32(&serdev->dev, "max-speed", &speed); -+ if (!err) -+ bcmdev->hu.oper_speed = speed; -+ -+ return hci_uart_register_device(&bcmdev->hu, &bcm_proto); -+} -+ -+static void bcm_serdev_remove(struct serdev_device *serdev) -+{ -+ struct bcm_serdev *bcmdev = serdev_device_get_drvdata(serdev); -+ -+ hci_uart_unregister_device(&bcmdev->hu); -+} -+ -+#ifdef CONFIG_OF -+static const struct of_device_id bcm_bluetooth_of_match[] = { -+ { .compatible = "brcm,bcm43438-bt" }, -+ { }, -+}; -+MODULE_DEVICE_TABLE(of, bcm_bluetooth_of_match); -+#endif -+ -+static struct serdev_device_driver bcm_serdev_driver = { -+ .probe = bcm_serdev_probe, -+ .remove = bcm_serdev_remove, -+ .driver = { -+ .name = "hci_uart_bcm", -+ .of_match_table = of_match_ptr(bcm_bluetooth_of_match), -+ }, -+}; -+ - int __init bcm_init(void) - { -+ /* For now, we need to keep both platform device -+ * driver (ACPI generated) and serdev driver (DT). -+ */ - platform_driver_register(&bcm_driver); -+ serdev_device_driver_register(&bcm_serdev_driver); - - return hci_uart_register_proto(&bcm_proto); - } -@@ -916,6 +996,7 @@ int __init bcm_init(void) - int __exit bcm_deinit(void) - { - platform_driver_unregister(&bcm_driver); -+ serdev_device_driver_unregister(&bcm_serdev_driver); - - return hci_uart_unregister_proto(&bcm_proto); - } --- -cgit v1.1 - -From 01d5e44ace8a20fc51e0d530f98acb3c365345a5 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Thu, 17 Aug 2017 21:41:09 +0200 -Subject: Bluetooth: hci_bcm: Handle empty packet after firmware loading - -The Broadcom controller on the Raspberry Pi3 sends an empty packet with -packet type 0x00 after launching the firmware. This will cause logging -of errors. - - Bluetooth: hci0: Frame reassembly failed (-84) - -Since this seems to be an intented behaviour of the controller, handle -it gracefully by parsing that empty packet with packet type 0x00 and -then just simply report it as diagnostic packet. - -With that change no errors are logging and the packet itself is actually -recorded in the Bluetooth monitor traces. - - < HCI Command: Broadcom Launch RAM (0x3f|0x004e) plen 4 - Address: 0xffffffff - > HCI Event: Command Complete (0x0e) plen 4 - Broadcom Launch RAM (0x3f|0x004e) ncmd 1 - Status: Success (0x00) - = Vendor Diagnostic (len 0) - < HCI Command: Broadcom Update UART Baud Rate (0x3f|0x0018) plen 6 - 00 00 00 10 0e 00 ...... - > HCI Event: Command Complete (0x0e) plen 4 - Broadcom Update UART Baud Rate (0x3f|0x0018) ncmd 1 - Status: Success (0x00) - < HCI Command: Reset (0x03|0x0003) plen 0 - > HCI Event: Command Complete (0x0e) plen 4 - Reset (0x03|0x0003) ncmd 1 - Status: Success (0x00) - -Signed-off-by: Marcel Holtmann -Signed-off-by: Johan Hedberg ---- - drivers/bluetooth/hci_bcm.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 34882f1..e254011 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -44,6 +44,9 @@ - #include "btbcm.h" - #include "hci_uart.h" - -+#define BCM_NULL_PKT 0x00 -+#define BCM_NULL_SIZE 0 -+ - #define BCM_LM_DIAG_PKT 0x07 - #define BCM_LM_DIAG_SIZE 63 - -@@ -468,11 +471,19 @@ finalize: - .lsize = 0, \ - .maxlen = BCM_LM_DIAG_SIZE - -+#define BCM_RECV_NULL \ -+ .type = BCM_NULL_PKT, \ -+ .hlen = BCM_NULL_SIZE, \ -+ .loff = 0, \ -+ .lsize = 0, \ -+ .maxlen = BCM_NULL_SIZE -+ - static const struct h4_recv_pkt bcm_recv_pkts[] = { - { H4_RECV_ACL, .recv = hci_recv_frame }, - { H4_RECV_SCO, .recv = hci_recv_frame }, - { H4_RECV_EVENT, .recv = hci_recv_frame }, - { BCM_RECV_LM_DIAG, .recv = hci_recv_diag }, -+ { BCM_RECV_NULL, .recv = hci_recv_diag }, - }; - - static int bcm_recv(struct hci_uart *hu, const void *data, int count) --- -cgit v1.1 - -From c34dc3bfa7642fda423208579015d615f7becfa0 Mon Sep 17 00:00:00 2001 -From: Ian Molton -Date: Sat, 8 Jul 2017 17:37:41 +0100 -Subject: Bluetooth: hci_serdev: Introduce hci_uart_unregister_device() - -Several drivers have the same (and incorrect) code in their -_remove() handler. - -Coalesce this into a shared function. - -Signed-off-by: Ian Molton -Reviewed-by: Sebastian Reichel -Signed-off-by: Marcel Holtmann ---- - drivers/bluetooth/hci_serdev.c | 13 +++++++++++++ - drivers/bluetooth/hci_uart.h | 1 + - 2 files changed, 14 insertions(+) - -diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c -index aea9301..b725ac4 100644 ---- a/drivers/bluetooth/hci_serdev.c -+++ b/drivers/bluetooth/hci_serdev.c -@@ -354,3 +354,16 @@ err_alloc: - return err; - } - EXPORT_SYMBOL_GPL(hci_uart_register_device); -+ -+void hci_uart_unregister_device(struct hci_uart *hu) -+{ -+ struct hci_dev *hdev = hu->hdev; -+ -+ hci_unregister_dev(hdev); -+ hci_free_dev(hdev); -+ -+ cancel_work_sync(&hu->write_work); -+ -+ hu->proto->close(hu); -+} -+EXPORT_SYMBOL_GPL(hci_uart_unregister_device); -diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h -index c6e9e1c..d9cd95d 100644 ---- a/drivers/bluetooth/hci_uart.h -+++ b/drivers/bluetooth/hci_uart.h -@@ -112,6 +112,7 @@ struct hci_uart { - int hci_uart_register_proto(const struct hci_uart_proto *p); - int hci_uart_unregister_proto(const struct hci_uart_proto *p); - int hci_uart_register_device(struct hci_uart *hu, const struct hci_uart_proto *p); -+void hci_uart_unregister_device(struct hci_uart *hu); - - int hci_uart_tx_wakeup(struct hci_uart *hu); - int hci_uart_init_ready(struct hci_uart *hu); --- -cgit v1.1 - -From patchwork Thu Aug 17 17:59:48 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v4,1/4] dt-bindings: net: bluetooth: Add broadcom-bluetooth -X-Patchwork-Submitter: Loic Poulain -X-Patchwork-Id: 802828 -Message-Id: <1502992791-10265-1-git-send-email-loic.poulain@gmail.com> -To: robh+dt@kernel.org, f.fainelli@gmail.com, rjui@broadcom.com, - marcel@holtmann.org, johan.hedberg@gmail.com, stefan.wahren@i2se.com -Cc: devicetree@vger.kernel.org, linux-bluetooth@vger.kernel.org, - linux-rpi-kernel@lists.infradead.org, Loic Poulain -Date: Thu, 17 Aug 2017 19:59:48 +0200 -From: Loic Poulain -List-Id: - -Add binding document for serial bluetooth chips using -Broadcom protocol. - -Signed-off-by: Loic Poulain -Acked-by: Rob Herring -Acked-by: Rob Herring -Acked-by: Rob Herring ---- - v2: dt-bindings as separate patch - rebase on upcoming pi3 dts changes - v3: changes in bcm serdev drivers: - name refactoring and additional comments - Add generic host_set_baudrate method - Use agnostic device_property_read - v4: changes in doc and dts: - Add additional params to broadcom bt dt-bindings - Set the max baudrate to 2000000 instead of 921600 - use chosen/stdout-path instead of console= - remove useless earlyprintk - same changes in bcm283x.dtsi - - .../devicetree/bindings/net/broadcom-bluetooth.txt | 35 ++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - create mode 100644 Documentation/devicetree/bindings/net/broadcom-bluetooth.txt - -diff --git a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt -new file mode 100644 -index 0000000..4194ff7 ---- /dev/null -+++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt -@@ -0,0 +1,35 @@ -+Broadcom Bluetooth Chips -+--------------------- -+ -+This documents the binding structure and common properties for serial -+attached Broadcom devices. -+ -+Serial attached Broadcom devices shall be a child node of the host UART -+device the slave device is attached to. -+ -+Required properties: -+ -+ - compatible: should contain one of the following: -+ * "brcm,bcm43438-bt" -+ -+Optional properties: -+ -+ - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt -+ - shutdown-gpios: GPIO specifier, used to enable the BT module -+ - device-wakeup-gpios: GPIO specifier, used to wakeup the controller -+ - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor -+ - clocks: clock specifier if external clock provided to the controller -+ - clock-names: should be "extclk" -+ -+ -+Example: -+ -+&uart2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart2_pins>; -+ -+ bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ max-speed = <921600>; -+ }; -+}; -From a92507095467d77f4fd05f54ae8d299459c2c3a3 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Sun, 10 Sep 2017 19:29:23 +0100 -Subject: [PATCH 1/2] ARM: dts: bcm283x: Use stdout-path instead of console - bootarg - -Add the serial port config to "chosen/stdout-path". -Create serial0/1 aliases referring to uart0 ant uart1 paths. -Remove unneeded earlyprintk. - -Signed-off-by: Loic Poulain -Signed-off-by: Peter Robinson ---- - arch/arm/boot/dts/bcm283x.dtsi | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi -index 431dcfc900c0..013431e3d7c3 100644 ---- a/arch/arm/boot/dts/bcm283x.dtsi -+++ b/arch/arm/boot/dts/bcm283x.dtsi -@@ -20,8 +20,13 @@ - #address-cells = <1>; - #size-cells = <1>; - -+ aliases { -+ serial0 = &uart0; -+ serial1 = &uart1; -+ }; -+ - chosen { -- bootargs = "earlyprintk console=ttyAMA0"; -+ stdout-path = "serial0:115200n8"; - }; - - thermal-zones { --- -2.13.5 - From 50252c318fe2fcfcbd0832fa835e7fd1fafd7d2d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 10 Sep 2017 19:30:02 +0100 @@ -613,18 +19,6 @@ diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-r index 20725ca487f3..e4488cb3067e 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -@@ -8,6 +8,11 @@ - compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; - model = "Raspberry Pi 3 Model B"; - -+ chosen { -+ /* 8250 auxiliar UART instead of pl011 */ -+ stdout-path = "serial1:115200n8"; -+ }; -+ - memory { - reg = <0 0x40000000>; - }; @@ -24,6 +29,11 @@ pinctrl-names = "default"; pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; diff --git a/bcm2837-move-dt.patch b/bcm2837-move-dt.patch deleted file mode 100644 index 018cf81d7..000000000 --- a/bcm2837-move-dt.patch +++ /dev/null @@ -1,516 +0,0 @@ -From 3bfe25fa9f8a56c5c877c7fd854d89238787c6d8 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Wed, 26 Jul 2017 13:01:56 -0700 -Subject: ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm. - -BCM2837 is somewhat unusual in that we build its DT on both arm32 and -arm64. Most devices are being run in arm32 mode. - -Having the body of the DT for 2837 separate from 2835/6 has been a -source of pain, as we often need to make changes that span both -directories simultaneously (for example, the thermal changes for 4.13, -or anything that changes the name of a node referenced by '&' from -board files). Other changes are made more complicated than they need -to be, such as the SDHOST enabling, because we have to split a single -logical change into a 283[56] half and a 2837 half. - -To fix this, make the stub board include file live in arm64 instead of -arm32, and keep all of BCM283x's contents in arm32. From here on, our -changes to DT contents can be submitted through a single tree. - -Signed-off-by: Eric Anholt -Signed-off-by: Florian Fainelli ---- - arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 42 ++++++++++- - arch/arm/boot/dts/bcm2837.dtsi | 86 ++++++++++++++++++++++ - arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi | 1 - - arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts | 42 +---------- - arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 86 ---------------------- - .../boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi | 1 - - .../boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi | 1 - - arch/arm64/boot/dts/broadcom/bcm283x.dtsi | 1 - - 8 files changed, 128 insertions(+), 132 deletions(-) - create mode 100644 arch/arm/boot/dts/bcm2837.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi - delete mode 100644 arch/arm64/boot/dts/broadcom/bcm2837.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x.dtsi - -diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -index c72a27d..972f14d 100644 ---- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -@@ -1 +1,41 @@ --#include "arm64/broadcom/bcm2837-rpi-3-b.dts" -+/dts-v1/; -+#include "bcm2837.dtsi" -+#include "bcm2835-rpi.dtsi" -+#include "bcm283x-rpi-smsc9514.dtsi" -+#include "bcm283x-rpi-usb-host.dtsi" -+ -+/ { -+ compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; -+ model = "Raspberry Pi 3 Model B"; -+ -+ memory { -+ reg = <0 0x40000000>; -+ }; -+ -+ leds { -+ act { -+ gpios = <&gpio 47 0>; -+ }; -+ }; -+}; -+ -+&uart1 { -+ status = "okay"; -+}; -+ -+/* SDHCI is used to control the SDIO for wireless */ -+&sdhci { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_gpio34>; -+ status = "okay"; -+ bus-width = <4>; -+ non-removable; -+}; -+ -+/* SDHOST is used to drive the SD card */ -+&sdhost { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdhost_gpio48>; -+ status = "okay"; -+ bus-width = <4>; -+}; -diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi -new file mode 100644 -index 0000000..2d5de6f0 ---- /dev/null -+++ b/arch/arm/boot/dts/bcm2837.dtsi -@@ -0,0 +1,86 @@ -+#include "bcm283x.dtsi" -+ -+/ { -+ compatible = "brcm,bcm2837"; -+ -+ soc { -+ ranges = <0x7e000000 0x3f000000 0x1000000>, -+ <0x40000000 0x40000000 0x00001000>; -+ dma-ranges = <0xc0000000 0x00000000 0x3f000000>; -+ -+ local_intc: local_intc { -+ compatible = "brcm,bcm2836-l1-intc"; -+ reg = <0x40000000 0x100>; -+ interrupt-controller; -+ #interrupt-cells = <1>; -+ interrupt-parent = <&local_intc>; -+ }; -+ }; -+ -+ timer { -+ compatible = "arm,armv7-timer"; -+ interrupt-parent = <&local_intc>; -+ interrupts = <0>, // PHYS_SECURE_PPI -+ <1>, // PHYS_NONSECURE_PPI -+ <3>, // VIRT_PPI -+ <2>; // HYP_PPI -+ always-on; -+ }; -+ -+ cpus: cpus { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ cpu0: cpu@0 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <0>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000d8>; -+ }; -+ -+ cpu1: cpu@1 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <1>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000e0>; -+ }; -+ -+ cpu2: cpu@2 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <2>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000e8>; -+ }; -+ -+ cpu3: cpu@3 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <3>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000f0>; -+ }; -+ }; -+}; -+ -+/* Make the BCM2835-style global interrupt controller be a child of the -+ * CPU-local interrupt controller. -+ */ -+&intc { -+ compatible = "brcm,bcm2836-armctrl-ic"; -+ reg = <0x7e00b200 0x200>; -+ interrupt-parent = <&local_intc>; -+ interrupts = <8>; -+}; -+ -+&cpu_thermal { -+ coefficients = <(-538) 412000>; -+}; -+ -+/* enable thermal sensor with the correct compatible property set */ -+&thermal { -+ compatible = "brcm,bcm2837-thermal"; -+ status = "okay"; -+}; -diff --git a/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi -deleted file mode 120000 -index 3937b77..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm2835-rpi.dtsi -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts -index 972f14d..699d340 100644 ---- a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts -+++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts -@@ -1,41 +1 @@ --/dts-v1/; --#include "bcm2837.dtsi" --#include "bcm2835-rpi.dtsi" --#include "bcm283x-rpi-smsc9514.dtsi" --#include "bcm283x-rpi-usb-host.dtsi" -- --/ { -- compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; -- model = "Raspberry Pi 3 Model B"; -- -- memory { -- reg = <0 0x40000000>; -- }; -- -- leds { -- act { -- gpios = <&gpio 47 0>; -- }; -- }; --}; -- --&uart1 { -- status = "okay"; --}; -- --/* SDHCI is used to control the SDIO for wireless */ --&sdhci { -- pinctrl-names = "default"; -- pinctrl-0 = <&emmc_gpio34>; -- status = "okay"; -- bus-width = <4>; -- non-removable; --}; -- --/* SDHOST is used to drive the SD card */ --&sdhost { -- pinctrl-names = "default"; -- pinctrl-0 = <&sdhost_gpio48>; -- status = "okay"; -- bus-width = <4>; --}; -+#include "arm/bcm2837-rpi-3-b.dts" -diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi -deleted file mode 100644 -index 2d5de6f0..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi -+++ /dev/null -@@ -1,86 +0,0 @@ --#include "bcm283x.dtsi" -- --/ { -- compatible = "brcm,bcm2837"; -- -- soc { -- ranges = <0x7e000000 0x3f000000 0x1000000>, -- <0x40000000 0x40000000 0x00001000>; -- dma-ranges = <0xc0000000 0x00000000 0x3f000000>; -- -- local_intc: local_intc { -- compatible = "brcm,bcm2836-l1-intc"; -- reg = <0x40000000 0x100>; -- interrupt-controller; -- #interrupt-cells = <1>; -- interrupt-parent = <&local_intc>; -- }; -- }; -- -- timer { -- compatible = "arm,armv7-timer"; -- interrupt-parent = <&local_intc>; -- interrupts = <0>, // PHYS_SECURE_PPI -- <1>, // PHYS_NONSECURE_PPI -- <3>, // VIRT_PPI -- <2>; // HYP_PPI -- always-on; -- }; -- -- cpus: cpus { -- #address-cells = <1>; -- #size-cells = <0>; -- -- cpu0: cpu@0 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <0>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000d8>; -- }; -- -- cpu1: cpu@1 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <1>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000e0>; -- }; -- -- cpu2: cpu@2 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <2>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000e8>; -- }; -- -- cpu3: cpu@3 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <3>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000f0>; -- }; -- }; --}; -- --/* Make the BCM2835-style global interrupt controller be a child of the -- * CPU-local interrupt controller. -- */ --&intc { -- compatible = "brcm,bcm2836-armctrl-ic"; -- reg = <0x7e00b200 0x200>; -- interrupt-parent = <&local_intc>; -- interrupts = <8>; --}; -- --&cpu_thermal { -- coefficients = <(-538) 412000>; --}; -- --/* enable thermal sensor with the correct compatible property set */ --&thermal { -- compatible = "brcm,bcm2837-thermal"; -- status = "okay"; --}; -diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi -deleted file mode 120000 -index dca7c05..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi -deleted file mode 120000 -index cbeebe3..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm283x-rpi-usb-host.dtsi -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/broadcom/bcm283x.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x.dtsi -deleted file mode 120000 -index 5f54e4c..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm283x.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm283x.dtsi -\ No newline at end of file --- -cgit v1.1 - -From 4188ea2aeb6dd8f99ab77662f463e41bc464a704 Mon Sep 17 00:00:00 2001 -From: Stefan Wahren -Date: Sun, 30 Jul 2017 19:10:32 +0200 -Subject: ARM: bcm283x: Define UART pinmuxing on board level - -Until RPI 3 and Zero W the pl011 (uart0) was always on pin 14/15. So in -order to take care of them and other boards in the future, -we need to define UART pinmuxing on board level. - -This work based on Eric Anholt's patch "ARM: bcm2385: Don't force pl011 -onto pins 14/15." and Fabian Vogt's patch "ARM64: dts: bcm2837: assign -uart0 to BT and uart1 to pin headers". - -Signed-off-by: Stefan Wahren -Reviewed-by: Eric Anholt -Signed-off-by: Eric Anholt ---- - arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-a.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-b.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-zero.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +- - arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 6 ++++++ - arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 10 ++++++++++ - 9 files changed, 53 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts -index d070454..9f86649 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts -@@ -99,3 +99,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-a.dts b/arch/arm/boot/dts/bcm2835-rpi-a.dts -index 46d078e..4b1af06 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-a.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts -@@ -94,3 +94,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts -index 432088e..a846f1e 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts -@@ -101,3 +101,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts -index 4133bc2..e860964 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts -@@ -94,3 +94,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts -index 4d56fe3..5d77f3f 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-b.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts -@@ -89,3 +89,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero.dts b/arch/arm/boot/dts/bcm2835-rpi-zero.dts -index 79a20d5..7036240 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts -@@ -103,3 +103,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi -index e55b362..e36c392 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi.dtsi -+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi -@@ -39,7 +39,7 @@ - }; - - alt0: alt0 { -- brcm,pins = <4 5 7 8 9 10 11 14 15>; -+ brcm,pins = <4 5 7 8 9 10 11>; - brcm,function = ; - }; - }; -diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts -index bf19e8c..e8de414 100644 ---- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts -+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts -@@ -39,3 +39,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -index 972f14d..20725ca 100644 ---- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -@@ -19,7 +19,17 @@ - }; - }; - -+/* uart0 communicates with the BT module */ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; -+ status = "okay"; -+}; -+ -+/* uart1 is mapped to the pin header */ - &uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_gpio14>; - status = "okay"; - }; - --- -cgit v1.1 - diff --git a/bcm283x-vc4-fixes.patch b/bcm283x-vc4-fixes.patch deleted file mode 100644 index d17ff1873..000000000 --- a/bcm283x-vc4-fixes.patch +++ /dev/null @@ -1,1803 +0,0 @@ -From d74617cb4aebe5a4cb3eeda3070053ccfc36a0ae Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Tue, 25 Jul 2017 09:27:32 -0700 -Subject: [PATCH 1/6] drm/vc4: Demote user-accessible DRM_ERROR paths to - DRM_DEBUG. - -Userspace shouldn't be able to spam dmesg by passing bad arguments. -This has particularly become an issues since we started using a bad -argument to set_tiling to detect if set_tiling was supported. - -Signed-off-by: Eric Anholt -Fixes: 83753117f1de ("drm/vc4: Add get/set tiling ioctls.") -Link: https://patchwork.freedesktop.org/patch/msgid/20170725162733.28007-1-eric@anholt.net -Reviewed-by: Boris Brezillon ---- - drivers/gpu/drm/vc4/vc4_bo.c | 14 +++--- - drivers/gpu/drm/vc4/vc4_gem.c | 10 ++-- - drivers/gpu/drm/vc4/vc4_kms.c | 2 +- - drivers/gpu/drm/vc4/vc4_render_cl.c | 40 +++++++-------- - drivers/gpu/drm/vc4/vc4_validate.c | 78 +++++++++++++++--------------- - drivers/gpu/drm/vc4/vc4_validate_shaders.c | 72 +++++++++++++-------------- - 6 files changed, 108 insertions(+), 108 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c -index 487f96412d35..ede80199001d 100644 ---- a/drivers/gpu/drm/vc4/vc4_bo.c -+++ b/drivers/gpu/drm/vc4/vc4_bo.c -@@ -389,7 +389,7 @@ vc4_prime_export(struct drm_device *dev, struct drm_gem_object *obj, int flags) - struct vc4_bo *bo = to_vc4_bo(obj); - - if (bo->validated_shader) { -- DRM_ERROR("Attempting to export shader BO\n"); -+ DRM_DEBUG("Attempting to export shader BO\n"); - return ERR_PTR(-EINVAL); - } - -@@ -410,7 +410,7 @@ int vc4_mmap(struct file *filp, struct vm_area_struct *vma) - bo = to_vc4_bo(gem_obj); - - if (bo->validated_shader && (vma->vm_flags & VM_WRITE)) { -- DRM_ERROR("mmaping of shader BOs for writing not allowed.\n"); -+ DRM_DEBUG("mmaping of shader BOs for writing not allowed.\n"); - return -EINVAL; - } - -@@ -435,7 +435,7 @@ int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) - struct vc4_bo *bo = to_vc4_bo(obj); - - if (bo->validated_shader && (vma->vm_flags & VM_WRITE)) { -- DRM_ERROR("mmaping of shader BOs for writing not allowed.\n"); -+ DRM_DEBUG("mmaping of shader BOs for writing not allowed.\n"); - return -EINVAL; - } - -@@ -447,7 +447,7 @@ void *vc4_prime_vmap(struct drm_gem_object *obj) - struct vc4_bo *bo = to_vc4_bo(obj); - - if (bo->validated_shader) { -- DRM_ERROR("mmaping of shader BOs not allowed.\n"); -+ DRM_DEBUG("mmaping of shader BOs not allowed.\n"); - return ERR_PTR(-EINVAL); - } - -@@ -501,7 +501,7 @@ int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -EINVAL; - } - -@@ -605,7 +605,7 @@ int vc4_set_tiling_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -ENOENT; - } - bo = to_vc4_bo(gem_obj); -@@ -636,7 +636,7 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -ENOENT; - } - bo = to_vc4_bo(gem_obj); -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index d5b821ad06af..a3e45e67f417 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -659,7 +659,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, - /* See comment on bo_index for why we have to check - * this. - */ -- DRM_ERROR("Rendering requires BOs to validate\n"); -+ DRM_DEBUG("Rendering requires BOs to validate\n"); - return -EINVAL; - } - -@@ -691,7 +691,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, - struct drm_gem_object *bo = idr_find(&file_priv->object_idr, - handles[i]); - if (!bo) { -- DRM_ERROR("Failed to look up GEM BO %d: %d\n", -+ DRM_DEBUG("Failed to look up GEM BO %d: %d\n", - i, handles[i]); - ret = -EINVAL; - spin_unlock(&file_priv->table_lock); -@@ -729,7 +729,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - args->shader_rec_count >= (UINT_MAX / - sizeof(struct vc4_shader_state)) || - temp_size < exec_size) { -- DRM_ERROR("overflow in exec arguments\n"); -+ DRM_DEBUG("overflow in exec arguments\n"); - ret = -EINVAL; - goto fail; - } -@@ -974,7 +974,7 @@ vc4_wait_bo_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -EINVAL; - } - bo = to_vc4_bo(gem_obj); -@@ -1009,7 +1009,7 @@ vc4_submit_cl_ioctl(struct drm_device *dev, void *data, - int ret = 0; - - if ((args->flags & ~VC4_SUBMIT_CL_USE_CLEAR_COLOR) != 0) { -- DRM_ERROR("Unknown flags: 0x%02x\n", args->flags); -+ DRM_DEBUG("Unknown flags: 0x%02x\n", args->flags); - return -EINVAL; - } - -diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c -index bc6ecdc6f104..b2c55eb09ca3 100644 ---- a/drivers/gpu/drm/vc4/vc4_kms.c -+++ b/drivers/gpu/drm/vc4/vc4_kms.c -@@ -204,7 +204,7 @@ static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev, - gem_obj = drm_gem_object_lookup(file_priv, - mode_cmd->handles[0]); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", -+ DRM_DEBUG("Failed to look up GEM BO %d\n", - mode_cmd->handles[0]); - return ERR_PTR(-ENOENT); - } -diff --git a/drivers/gpu/drm/vc4/vc4_render_cl.c b/drivers/gpu/drm/vc4/vc4_render_cl.c -index 5dc19429d4ae..da3bfd53f0bd 100644 ---- a/drivers/gpu/drm/vc4/vc4_render_cl.c -+++ b/drivers/gpu/drm/vc4/vc4_render_cl.c -@@ -378,14 +378,14 @@ static int vc4_full_res_bounds_check(struct vc4_exec_info *exec, - u32 render_tiles_stride = DIV_ROUND_UP(exec->args->width, 32); - - if (surf->offset > obj->base.size) { -- DRM_ERROR("surface offset %d > BO size %zd\n", -+ DRM_DEBUG("surface offset %d > BO size %zd\n", - surf->offset, obj->base.size); - return -EINVAL; - } - - if ((obj->base.size - surf->offset) / VC4_TILE_BUFFER_SIZE < - render_tiles_stride * args->max_y_tile + args->max_x_tile) { -- DRM_ERROR("MSAA tile %d, %d out of bounds " -+ DRM_DEBUG("MSAA tile %d, %d out of bounds " - "(bo size %zd, offset %d).\n", - args->max_x_tile, args->max_y_tile, - obj->base.size, -@@ -401,7 +401,7 @@ static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec, - struct drm_vc4_submit_rcl_surface *surf) - { - if (surf->flags != 0 || surf->bits != 0) { -- DRM_ERROR("MSAA surface had nonzero flags/bits\n"); -+ DRM_DEBUG("MSAA surface had nonzero flags/bits\n"); - return -EINVAL; - } - -@@ -415,7 +415,7 @@ static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec, - exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj; - - if (surf->offset & 0xf) { -- DRM_ERROR("MSAA write must be 16b aligned.\n"); -+ DRM_DEBUG("MSAA write must be 16b aligned.\n"); - return -EINVAL; - } - -@@ -437,7 +437,7 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - int ret; - - if (surf->flags & ~VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES) { -- DRM_ERROR("Extra flags set\n"); -+ DRM_DEBUG("Extra flags set\n"); - return -EINVAL; - } - -@@ -453,12 +453,12 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - - if (surf->flags & VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES) { - if (surf == &exec->args->zs_write) { -- DRM_ERROR("general zs write may not be a full-res.\n"); -+ DRM_DEBUG("general zs write may not be a full-res.\n"); - return -EINVAL; - } - - if (surf->bits != 0) { -- DRM_ERROR("load/store general bits set with " -+ DRM_DEBUG("load/store general bits set with " - "full res load/store.\n"); - return -EINVAL; - } -@@ -473,19 +473,19 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - if (surf->bits & ~(VC4_LOADSTORE_TILE_BUFFER_TILING_MASK | - VC4_LOADSTORE_TILE_BUFFER_BUFFER_MASK | - VC4_LOADSTORE_TILE_BUFFER_FORMAT_MASK)) { -- DRM_ERROR("Unknown bits in load/store: 0x%04x\n", -+ DRM_DEBUG("Unknown bits in load/store: 0x%04x\n", - surf->bits); - return -EINVAL; - } - - if (tiling > VC4_TILING_FORMAT_LT) { -- DRM_ERROR("Bad tiling format\n"); -+ DRM_DEBUG("Bad tiling format\n"); - return -EINVAL; - } - - if (buffer == VC4_LOADSTORE_TILE_BUFFER_ZS) { - if (format != 0) { -- DRM_ERROR("No color format should be set for ZS\n"); -+ DRM_DEBUG("No color format should be set for ZS\n"); - return -EINVAL; - } - cpp = 4; -@@ -499,16 +499,16 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - cpp = 4; - break; - default: -- DRM_ERROR("Bad tile buffer format\n"); -+ DRM_DEBUG("Bad tile buffer format\n"); - return -EINVAL; - } - } else { -- DRM_ERROR("Bad load/store buffer %d.\n", buffer); -+ DRM_DEBUG("Bad load/store buffer %d.\n", buffer); - return -EINVAL; - } - - if (surf->offset & 0xf) { -- DRM_ERROR("load/store buffer must be 16b aligned.\n"); -+ DRM_DEBUG("load/store buffer must be 16b aligned.\n"); - return -EINVAL; - } - -@@ -533,7 +533,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - int cpp; - - if (surf->flags != 0) { -- DRM_ERROR("No flags supported on render config.\n"); -+ DRM_DEBUG("No flags supported on render config.\n"); - return -EINVAL; - } - -@@ -541,7 +541,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - VC4_RENDER_CONFIG_FORMAT_MASK | - VC4_RENDER_CONFIG_MS_MODE_4X | - VC4_RENDER_CONFIG_DECIMATE_MODE_4X)) { -- DRM_ERROR("Unknown bits in render config: 0x%04x\n", -+ DRM_DEBUG("Unknown bits in render config: 0x%04x\n", - surf->bits); - return -EINVAL; - } -@@ -556,7 +556,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj; - - if (tiling > VC4_TILING_FORMAT_LT) { -- DRM_ERROR("Bad tiling format\n"); -+ DRM_DEBUG("Bad tiling format\n"); - return -EINVAL; - } - -@@ -569,7 +569,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - cpp = 4; - break; - default: -- DRM_ERROR("Bad tile buffer format\n"); -+ DRM_DEBUG("Bad tile buffer format\n"); - return -EINVAL; - } - -@@ -590,7 +590,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) - - if (args->min_x_tile > args->max_x_tile || - args->min_y_tile > args->max_y_tile) { -- DRM_ERROR("Bad render tile set (%d,%d)-(%d,%d)\n", -+ DRM_DEBUG("Bad render tile set (%d,%d)-(%d,%d)\n", - args->min_x_tile, args->min_y_tile, - args->max_x_tile, args->max_y_tile); - return -EINVAL; -@@ -599,7 +599,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) - if (has_bin && - (args->max_x_tile > exec->bin_tiles_x || - args->max_y_tile > exec->bin_tiles_y)) { -- DRM_ERROR("Render tiles (%d,%d) outside of bin config " -+ DRM_DEBUG("Render tiles (%d,%d) outside of bin config " - "(%d,%d)\n", - args->max_x_tile, args->max_y_tile, - exec->bin_tiles_x, exec->bin_tiles_y); -@@ -642,7 +642,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) - */ - if (!setup.color_write && !setup.zs_write && - !setup.msaa_color_write && !setup.msaa_zs_write) { -- DRM_ERROR("RCL requires color or Z/S write\n"); -+ DRM_DEBUG("RCL requires color or Z/S write\n"); - return -EINVAL; - } - -diff --git a/drivers/gpu/drm/vc4/vc4_validate.c b/drivers/gpu/drm/vc4/vc4_validate.c -index 814b512c6b9a..2db485abb186 100644 ---- a/drivers/gpu/drm/vc4/vc4_validate.c -+++ b/drivers/gpu/drm/vc4/vc4_validate.c -@@ -109,7 +109,7 @@ vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) - struct vc4_bo *bo; - - if (hindex >= exec->bo_count) { -- DRM_ERROR("BO index %d greater than BO count %d\n", -+ DRM_DEBUG("BO index %d greater than BO count %d\n", - hindex, exec->bo_count); - return NULL; - } -@@ -117,7 +117,7 @@ vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) - bo = to_vc4_bo(&obj->base); - - if (bo->validated_shader) { -- DRM_ERROR("Trying to use shader BO as something other than " -+ DRM_DEBUG("Trying to use shader BO as something other than " - "a shader\n"); - return NULL; - } -@@ -172,7 +172,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, - * our math. - */ - if (width > 4096 || height > 4096) { -- DRM_ERROR("Surface dimensions (%d,%d) too large", -+ DRM_DEBUG("Surface dimensions (%d,%d) too large", - width, height); - return false; - } -@@ -191,7 +191,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, - aligned_height = round_up(height, utile_h); - break; - default: -- DRM_ERROR("buffer tiling %d unsupported\n", tiling_format); -+ DRM_DEBUG("buffer tiling %d unsupported\n", tiling_format); - return false; - } - -@@ -200,7 +200,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, - - if (size + offset < size || - size + offset > fbo->base.size) { -- DRM_ERROR("Overflow in %dx%d (%dx%d) fbo size (%d + %d > %zd)\n", -+ DRM_DEBUG("Overflow in %dx%d (%dx%d) fbo size (%d + %d > %zd)\n", - width, height, - aligned_width, aligned_height, - size, offset, fbo->base.size); -@@ -214,7 +214,7 @@ static int - validate_flush(VALIDATE_ARGS) - { - if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 1)) { -- DRM_ERROR("Bin CL must end with VC4_PACKET_FLUSH\n"); -+ DRM_DEBUG("Bin CL must end with VC4_PACKET_FLUSH\n"); - return -EINVAL; - } - exec->found_flush = true; -@@ -226,13 +226,13 @@ static int - validate_start_tile_binning(VALIDATE_ARGS) - { - if (exec->found_start_tile_binning_packet) { -- DRM_ERROR("Duplicate VC4_PACKET_START_TILE_BINNING\n"); -+ DRM_DEBUG("Duplicate VC4_PACKET_START_TILE_BINNING\n"); - return -EINVAL; - } - exec->found_start_tile_binning_packet = true; - - if (!exec->found_tile_binning_mode_config_packet) { -- DRM_ERROR("missing VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); -+ DRM_DEBUG("missing VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); - return -EINVAL; - } - -@@ -243,7 +243,7 @@ static int - validate_increment_semaphore(VALIDATE_ARGS) - { - if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 2)) { -- DRM_ERROR("Bin CL must end with " -+ DRM_DEBUG("Bin CL must end with " - "VC4_PACKET_INCREMENT_SEMAPHORE\n"); - return -EINVAL; - } -@@ -264,7 +264,7 @@ validate_indexed_prim_list(VALIDATE_ARGS) - - /* Check overflow condition */ - if (exec->shader_state_count == 0) { -- DRM_ERROR("shader state must precede primitives\n"); -+ DRM_DEBUG("shader state must precede primitives\n"); - return -EINVAL; - } - shader_state = &exec->shader_state[exec->shader_state_count - 1]; -@@ -281,7 +281,7 @@ validate_indexed_prim_list(VALIDATE_ARGS) - - if (offset > ib->base.size || - (ib->base.size - offset) / index_size < length) { -- DRM_ERROR("IB access overflow (%d + %d*%d > %zd)\n", -+ DRM_DEBUG("IB access overflow (%d + %d*%d > %zd)\n", - offset, length, index_size, ib->base.size); - return -EINVAL; - } -@@ -301,13 +301,13 @@ validate_gl_array_primitive(VALIDATE_ARGS) - - /* Check overflow condition */ - if (exec->shader_state_count == 0) { -- DRM_ERROR("shader state must precede primitives\n"); -+ DRM_DEBUG("shader state must precede primitives\n"); - return -EINVAL; - } - shader_state = &exec->shader_state[exec->shader_state_count - 1]; - - if (length + base_index < length) { -- DRM_ERROR("primitive vertex count overflow\n"); -+ DRM_DEBUG("primitive vertex count overflow\n"); - return -EINVAL; - } - max_index = length + base_index - 1; -@@ -324,7 +324,7 @@ validate_gl_shader_state(VALIDATE_ARGS) - uint32_t i = exec->shader_state_count++; - - if (i >= exec->shader_state_size) { -- DRM_ERROR("More requests for shader states than declared\n"); -+ DRM_DEBUG("More requests for shader states than declared\n"); - return -EINVAL; - } - -@@ -332,7 +332,7 @@ validate_gl_shader_state(VALIDATE_ARGS) - exec->shader_state[i].max_index = 0; - - if (exec->shader_state[i].addr & ~0xf) { -- DRM_ERROR("high bits set in GL shader rec reference\n"); -+ DRM_DEBUG("high bits set in GL shader rec reference\n"); - return -EINVAL; - } - -@@ -356,7 +356,7 @@ validate_tile_binning_config(VALIDATE_ARGS) - int bin_slot; - - if (exec->found_tile_binning_mode_config_packet) { -- DRM_ERROR("Duplicate VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); -+ DRM_DEBUG("Duplicate VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); - return -EINVAL; - } - exec->found_tile_binning_mode_config_packet = true; -@@ -368,14 +368,14 @@ validate_tile_binning_config(VALIDATE_ARGS) - - if (exec->bin_tiles_x == 0 || - exec->bin_tiles_y == 0) { -- DRM_ERROR("Tile binning config of %dx%d too small\n", -+ DRM_DEBUG("Tile binning config of %dx%d too small\n", - exec->bin_tiles_x, exec->bin_tiles_y); - return -EINVAL; - } - - if (flags & (VC4_BIN_CONFIG_DB_NON_MS | - VC4_BIN_CONFIG_TILE_BUFFER_64BIT)) { -- DRM_ERROR("unsupported binning config flags 0x%02x\n", flags); -+ DRM_DEBUG("unsupported binning config flags 0x%02x\n", flags); - return -EINVAL; - } - -@@ -493,20 +493,20 @@ vc4_validate_bin_cl(struct drm_device *dev, - const struct cmd_info *info; - - if (cmd >= ARRAY_SIZE(cmd_info)) { -- DRM_ERROR("0x%08x: packet %d out of bounds\n", -+ DRM_DEBUG("0x%08x: packet %d out of bounds\n", - src_offset, cmd); - return -EINVAL; - } - - info = &cmd_info[cmd]; - if (!info->name) { -- DRM_ERROR("0x%08x: packet %d invalid\n", -+ DRM_DEBUG("0x%08x: packet %d invalid\n", - src_offset, cmd); - return -EINVAL; - } - - if (src_offset + info->len > len) { -- DRM_ERROR("0x%08x: packet %d (%s) length 0x%08x " -+ DRM_DEBUG("0x%08x: packet %d (%s) length 0x%08x " - "exceeds bounds (0x%08x)\n", - src_offset, cmd, info->name, info->len, - src_offset + len); -@@ -519,7 +519,7 @@ vc4_validate_bin_cl(struct drm_device *dev, - if (info->func && info->func(exec, - dst_pkt + 1, - src_pkt + 1)) { -- DRM_ERROR("0x%08x: packet %d (%s) failed to validate\n", -+ DRM_DEBUG("0x%08x: packet %d (%s) failed to validate\n", - src_offset, cmd, info->name); - return -EINVAL; - } -@@ -537,7 +537,7 @@ vc4_validate_bin_cl(struct drm_device *dev, - exec->ct0ea = exec->ct0ca + dst_offset; - - if (!exec->found_start_tile_binning_packet) { -- DRM_ERROR("Bin CL missing VC4_PACKET_START_TILE_BINNING\n"); -+ DRM_DEBUG("Bin CL missing VC4_PACKET_START_TILE_BINNING\n"); - return -EINVAL; - } - -@@ -549,7 +549,7 @@ vc4_validate_bin_cl(struct drm_device *dev, - * semaphore increment. - */ - if (!exec->found_increment_semaphore_packet || !exec->found_flush) { -- DRM_ERROR("Bin CL missing VC4_PACKET_INCREMENT_SEMAPHORE + " -+ DRM_DEBUG("Bin CL missing VC4_PACKET_INCREMENT_SEMAPHORE + " - "VC4_PACKET_FLUSH\n"); - return -EINVAL; - } -@@ -588,11 +588,11 @@ reloc_tex(struct vc4_exec_info *exec, - uint32_t remaining_size = tex->base.size - p0; - - if (p0 > tex->base.size - 4) { -- DRM_ERROR("UBO offset greater than UBO size\n"); -+ DRM_DEBUG("UBO offset greater than UBO size\n"); - goto fail; - } - if (p1 > remaining_size - 4) { -- DRM_ERROR("UBO clamp would allow reads " -+ DRM_DEBUG("UBO clamp would allow reads " - "outside of UBO\n"); - goto fail; - } -@@ -612,14 +612,14 @@ reloc_tex(struct vc4_exec_info *exec, - if (VC4_GET_FIELD(p3, VC4_TEX_P2_PTYPE) == - VC4_TEX_P2_PTYPE_CUBE_MAP_STRIDE) { - if (cube_map_stride) { -- DRM_ERROR("Cube map stride set twice\n"); -+ DRM_DEBUG("Cube map stride set twice\n"); - goto fail; - } - - cube_map_stride = p3 & VC4_TEX_P2_CMST_MASK; - } - if (!cube_map_stride) { -- DRM_ERROR("Cube map stride not set\n"); -+ DRM_DEBUG("Cube map stride not set\n"); - goto fail; - } - } -@@ -660,7 +660,7 @@ reloc_tex(struct vc4_exec_info *exec, - case VC4_TEXTURE_TYPE_RGBA64: - case VC4_TEXTURE_TYPE_YUV422R: - default: -- DRM_ERROR("Texture format %d unsupported\n", type); -+ DRM_DEBUG("Texture format %d unsupported\n", type); - goto fail; - } - utile_w = utile_width(cpp); -@@ -713,7 +713,7 @@ reloc_tex(struct vc4_exec_info *exec, - level_size = aligned_width * cpp * aligned_height; - - if (offset < level_size) { -- DRM_ERROR("Level %d (%dx%d -> %dx%d) size %db " -+ DRM_DEBUG("Level %d (%dx%d -> %dx%d) size %db " - "overflowed buffer bounds (offset %d)\n", - i, level_width, level_height, - aligned_width, aligned_height, -@@ -764,7 +764,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - nr_relocs = ARRAY_SIZE(shader_reloc_offsets) + nr_attributes; - if (nr_relocs * 4 > exec->shader_rec_size) { -- DRM_ERROR("overflowed shader recs reading %d handles " -+ DRM_DEBUG("overflowed shader recs reading %d handles " - "from %d bytes left\n", - nr_relocs, exec->shader_rec_size); - return -EINVAL; -@@ -774,7 +774,7 @@ validate_gl_shader_rec(struct drm_device *dev, - exec->shader_rec_size -= nr_relocs * 4; - - if (packet_size > exec->shader_rec_size) { -- DRM_ERROR("overflowed shader recs copying %db packet " -+ DRM_DEBUG("overflowed shader recs copying %db packet " - "from %d bytes left\n", - packet_size, exec->shader_rec_size); - return -EINVAL; -@@ -794,7 +794,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - for (i = 0; i < shader_reloc_count; i++) { - if (src_handles[i] > exec->bo_count) { -- DRM_ERROR("Shader handle %d too big\n", src_handles[i]); -+ DRM_DEBUG("Shader handle %d too big\n", src_handles[i]); - return -EINVAL; - } - -@@ -810,13 +810,13 @@ validate_gl_shader_rec(struct drm_device *dev, - - if (((*(uint16_t *)pkt_u & VC4_SHADER_FLAG_FS_SINGLE_THREAD) == 0) != - to_vc4_bo(&bo[0]->base)->validated_shader->is_threaded) { -- DRM_ERROR("Thread mode of CL and FS do not match\n"); -+ DRM_DEBUG("Thread mode of CL and FS do not match\n"); - return -EINVAL; - } - - if (to_vc4_bo(&bo[1]->base)->validated_shader->is_threaded || - to_vc4_bo(&bo[2]->base)->validated_shader->is_threaded) { -- DRM_ERROR("cs and vs cannot be threaded\n"); -+ DRM_DEBUG("cs and vs cannot be threaded\n"); - return -EINVAL; - } - -@@ -831,7 +831,7 @@ validate_gl_shader_rec(struct drm_device *dev, - *(uint32_t *)(pkt_v + o) = bo[i]->paddr + src_offset; - - if (src_offset != 0) { -- DRM_ERROR("Shaders must be at offset 0 of " -+ DRM_DEBUG("Shaders must be at offset 0 of " - "the BO.\n"); - return -EINVAL; - } -@@ -842,7 +842,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - if (validated_shader->uniforms_src_size > - exec->uniforms_size) { -- DRM_ERROR("Uniforms src buffer overflow\n"); -+ DRM_DEBUG("Uniforms src buffer overflow\n"); - return -EINVAL; - } - -@@ -900,7 +900,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - if (vbo->base.size < offset || - vbo->base.size - offset < attr_size) { -- DRM_ERROR("BO offset overflow (%d + %d > %zu)\n", -+ DRM_DEBUG("BO offset overflow (%d + %d > %zu)\n", - offset, attr_size, vbo->base.size); - return -EINVAL; - } -@@ -909,7 +909,7 @@ validate_gl_shader_rec(struct drm_device *dev, - max_index = ((vbo->base.size - offset - attr_size) / - stride); - if (state->max_index > max_index) { -- DRM_ERROR("primitives use index %d out of " -+ DRM_DEBUG("primitives use index %d out of " - "supplied %d\n", - state->max_index, max_index); - return -EINVAL; -diff --git a/drivers/gpu/drm/vc4/vc4_validate_shaders.c b/drivers/gpu/drm/vc4/vc4_validate_shaders.c -index 0b2df5c6efb4..d3f15bf60900 100644 ---- a/drivers/gpu/drm/vc4/vc4_validate_shaders.c -+++ b/drivers/gpu/drm/vc4/vc4_validate_shaders.c -@@ -200,7 +200,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - uint32_t clamp_reg, clamp_offset; - - if (sig == QPU_SIG_SMALL_IMM) { -- DRM_ERROR("direct TMU read used small immediate\n"); -+ DRM_DEBUG("direct TMU read used small immediate\n"); - return false; - } - -@@ -209,7 +209,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - */ - if (is_mul || - QPU_GET_FIELD(inst, QPU_OP_ADD) != QPU_A_ADD) { -- DRM_ERROR("direct TMU load wasn't an add\n"); -+ DRM_DEBUG("direct TMU load wasn't an add\n"); - return false; - } - -@@ -220,13 +220,13 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - */ - clamp_reg = raddr_add_a_to_live_reg_index(inst); - if (clamp_reg == ~0) { -- DRM_ERROR("direct TMU load wasn't clamped\n"); -+ DRM_DEBUG("direct TMU load wasn't clamped\n"); - return false; - } - - clamp_offset = validation_state->live_min_clamp_offsets[clamp_reg]; - if (clamp_offset == ~0) { -- DRM_ERROR("direct TMU load wasn't clamped\n"); -+ DRM_DEBUG("direct TMU load wasn't clamped\n"); - return false; - } - -@@ -238,7 +238,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - - if (!(add_b == QPU_MUX_A && raddr_a == QPU_R_UNIF) && - !(add_b == QPU_MUX_B && raddr_b == QPU_R_UNIF)) { -- DRM_ERROR("direct TMU load didn't add to a uniform\n"); -+ DRM_DEBUG("direct TMU load didn't add to a uniform\n"); - return false; - } - -@@ -246,14 +246,14 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - } else { - if (raddr_a == QPU_R_UNIF || (sig != QPU_SIG_SMALL_IMM && - raddr_b == QPU_R_UNIF)) { -- DRM_ERROR("uniform read in the same instruction as " -+ DRM_DEBUG("uniform read in the same instruction as " - "texture setup.\n"); - return false; - } - } - - if (validation_state->tmu_write_count[tmu] >= 4) { -- DRM_ERROR("TMU%d got too many parameters before dispatch\n", -+ DRM_DEBUG("TMU%d got too many parameters before dispatch\n", - tmu); - return false; - } -@@ -265,7 +265,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - */ - if (!is_direct) { - if (validation_state->needs_uniform_address_update) { -- DRM_ERROR("Texturing with undefined uniform address\n"); -+ DRM_DEBUG("Texturing with undefined uniform address\n"); - return false; - } - -@@ -336,35 +336,35 @@ validate_uniform_address_write(struct vc4_validated_shader_info *validated_shade - case QPU_SIG_LOAD_TMU1: - break; - default: -- DRM_ERROR("uniforms address change must be " -+ DRM_DEBUG("uniforms address change must be " - "normal math\n"); - return false; - } - - if (is_mul || QPU_GET_FIELD(inst, QPU_OP_ADD) != QPU_A_ADD) { -- DRM_ERROR("Uniform address reset must be an ADD.\n"); -+ DRM_DEBUG("Uniform address reset must be an ADD.\n"); - return false; - } - - if (QPU_GET_FIELD(inst, QPU_COND_ADD) != QPU_COND_ALWAYS) { -- DRM_ERROR("Uniform address reset must be unconditional.\n"); -+ DRM_DEBUG("Uniform address reset must be unconditional.\n"); - return false; - } - - if (QPU_GET_FIELD(inst, QPU_PACK) != QPU_PACK_A_NOP && - !(inst & QPU_PM)) { -- DRM_ERROR("No packing allowed on uniforms reset\n"); -+ DRM_DEBUG("No packing allowed on uniforms reset\n"); - return false; - } - - if (add_lri == -1) { -- DRM_ERROR("First argument of uniform address write must be " -+ DRM_DEBUG("First argument of uniform address write must be " - "an immediate value.\n"); - return false; - } - - if (validation_state->live_immediates[add_lri] != expected_offset) { -- DRM_ERROR("Resetting uniforms with offset %db instead of %db\n", -+ DRM_DEBUG("Resetting uniforms with offset %db instead of %db\n", - validation_state->live_immediates[add_lri], - expected_offset); - return false; -@@ -372,7 +372,7 @@ validate_uniform_address_write(struct vc4_validated_shader_info *validated_shade - - if (!(add_b == QPU_MUX_A && raddr_a == QPU_R_UNIF) && - !(add_b == QPU_MUX_B && raddr_b == QPU_R_UNIF)) { -- DRM_ERROR("Second argument of uniform address write must be " -+ DRM_DEBUG("Second argument of uniform address write must be " - "a uniform.\n"); - return false; - } -@@ -417,7 +417,7 @@ check_reg_write(struct vc4_validated_shader_info *validated_shader, - switch (waddr) { - case QPU_W_UNIFORMS_ADDRESS: - if (is_b) { -- DRM_ERROR("relative uniforms address change " -+ DRM_DEBUG("relative uniforms address change " - "unsupported\n"); - return false; - } -@@ -452,11 +452,11 @@ check_reg_write(struct vc4_validated_shader_info *validated_shader, - /* XXX: I haven't thought about these, so don't support them - * for now. - */ -- DRM_ERROR("Unsupported waddr %d\n", waddr); -+ DRM_DEBUG("Unsupported waddr %d\n", waddr); - return false; - - case QPU_W_VPM_ADDR: -- DRM_ERROR("General VPM DMA unsupported\n"); -+ DRM_DEBUG("General VPM DMA unsupported\n"); - return false; - - case QPU_W_VPM: -@@ -559,7 +559,7 @@ check_instruction_writes(struct vc4_validated_shader_info *validated_shader, - bool ok; - - if (is_tmu_write(waddr_add) && is_tmu_write(waddr_mul)) { -- DRM_ERROR("ADD and MUL both set up textures\n"); -+ DRM_DEBUG("ADD and MUL both set up textures\n"); - return false; - } - -@@ -588,7 +588,7 @@ check_branch(uint64_t inst, - * there's no need for it. - */ - if (waddr_add != QPU_W_NOP || waddr_mul != QPU_W_NOP) { -- DRM_ERROR("branch instruction at %d wrote a register.\n", -+ DRM_DEBUG("branch instruction at %d wrote a register.\n", - validation_state->ip); - return false; - } -@@ -614,7 +614,7 @@ check_instruction_reads(struct vc4_validated_shader_info *validated_shader, - validated_shader->uniforms_size += 4; - - if (validation_state->needs_uniform_address_update) { -- DRM_ERROR("Uniform read with undefined uniform " -+ DRM_DEBUG("Uniform read with undefined uniform " - "address\n"); - return false; - } -@@ -660,19 +660,19 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - continue; - - if (ip - last_branch < 4) { -- DRM_ERROR("Branch at %d during delay slots\n", ip); -+ DRM_DEBUG("Branch at %d during delay slots\n", ip); - return false; - } - last_branch = ip; - - if (inst & QPU_BRANCH_REG) { -- DRM_ERROR("branching from register relative " -+ DRM_DEBUG("branching from register relative " - "not supported\n"); - return false; - } - - if (!(inst & QPU_BRANCH_REL)) { -- DRM_ERROR("relative branching required\n"); -+ DRM_DEBUG("relative branching required\n"); - return false; - } - -@@ -682,13 +682,13 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - * end of the shader object. - */ - if (branch_imm % sizeof(inst) != 0) { -- DRM_ERROR("branch target not aligned\n"); -+ DRM_DEBUG("branch target not aligned\n"); - return false; - } - - branch_target_ip = after_delay_ip + (branch_imm >> 3); - if (branch_target_ip >= validation_state->max_ip) { -- DRM_ERROR("Branch at %d outside of shader (ip %d/%d)\n", -+ DRM_DEBUG("Branch at %d outside of shader (ip %d/%d)\n", - ip, branch_target_ip, - validation_state->max_ip); - return false; -@@ -699,7 +699,7 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - * the shader. - */ - if (after_delay_ip >= validation_state->max_ip) { -- DRM_ERROR("Branch at %d continues past shader end " -+ DRM_DEBUG("Branch at %d continues past shader end " - "(%d/%d)\n", - ip, after_delay_ip, validation_state->max_ip); - return false; -@@ -709,7 +709,7 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - } - - if (max_branch_target > validation_state->max_ip - 3) { -- DRM_ERROR("Branch landed after QPU_SIG_PROG_END"); -+ DRM_DEBUG("Branch landed after QPU_SIG_PROG_END"); - return false; - } - -@@ -750,7 +750,7 @@ vc4_handle_branch_target(struct vc4_shader_validation_state *validation_state) - return true; - - if (texturing_in_progress(validation_state)) { -- DRM_ERROR("Branch target landed during TMU setup\n"); -+ DRM_DEBUG("Branch target landed during TMU setup\n"); - return false; - } - -@@ -837,7 +837,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - case QPU_SIG_LAST_THREAD_SWITCH: - if (!check_instruction_writes(validated_shader, - &validation_state)) { -- DRM_ERROR("Bad write at ip %d\n", ip); -+ DRM_DEBUG("Bad write at ip %d\n", ip); - goto fail; - } - -@@ -855,7 +855,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - validated_shader->is_threaded = true; - - if (ip < last_thread_switch_ip + 3) { -- DRM_ERROR("Thread switch too soon after " -+ DRM_DEBUG("Thread switch too soon after " - "last switch at ip %d\n", ip); - goto fail; - } -@@ -867,7 +867,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - case QPU_SIG_LOAD_IMM: - if (!check_instruction_writes(validated_shader, - &validation_state)) { -- DRM_ERROR("Bad LOAD_IMM write at ip %d\n", ip); -+ DRM_DEBUG("Bad LOAD_IMM write at ip %d\n", ip); - goto fail; - } - break; -@@ -878,14 +878,14 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - goto fail; - - if (ip < last_thread_switch_ip + 3) { -- DRM_ERROR("Branch in thread switch at ip %d", -+ DRM_DEBUG("Branch in thread switch at ip %d", - ip); - goto fail; - } - - break; - default: -- DRM_ERROR("Unsupported QPU signal %d at " -+ DRM_DEBUG("Unsupported QPU signal %d at " - "instruction %d\n", sig, ip); - goto fail; - } -@@ -898,7 +898,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - } - - if (ip == validation_state.max_ip) { -- DRM_ERROR("shader failed to terminate before " -+ DRM_DEBUG("shader failed to terminate before " - "shader BO end at %zd\n", - shader_obj->base.size); - goto fail; -@@ -907,7 +907,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - /* Might corrupt other thread */ - if (validated_shader->is_threaded && - validation_state.all_registers_used) { -- DRM_ERROR("Shader uses threading, but uses the upper " -+ DRM_DEBUG("Shader uses threading, but uses the upper " - "half of the registers, too\n"); - goto fail; - } --- -2.13.5 - -From 28b369f5abc790f56e668869d88f261ca7a27c55 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Tue, 8 Aug 2017 13:56:05 -0700 -Subject: [PATCH 2/6] drm/vc4: Fix leak of HDMI EDID - -We don't keep a pointer to it around anywhere, so it's our job to free -it. - -Cc: Stefan Wahren -Link: https://github.com/anholt/linux/issues/101 -Fixes: c8b75bca92cb ("drm/vc4: Add KMS support for Raspberry Pi.") -Signed-off-by: Eric Anholt -Link: https://patchwork.freedesktop.org/patch/msgid/20170808205605.4432-1-eric@anholt.net -Reviewed-by: Daniel Vetter -Tested-by: Stefan Wahren ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index ed63d4e85762..f7803fd7f47c 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -260,6 +260,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) - drm_mode_connector_update_edid_property(connector, edid); - ret = drm_add_edid_modes(connector, edid); - drm_edid_to_eld(connector, edid); -+ kfree(edid); - - return ret; - } --- -2.13.5 - -From 3b688b6d347f777a8e86165decc33198b063b8c0 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Tue, 25 Jul 2017 11:27:16 -0700 -Subject: [PATCH 3/6] drm/vc4: Start using u64_to_user_ptr. - -Chris Wilson pointed out this little cleanup in a review of new code, -so let's fix up the code I was copying from. - -Signed-off-by: Eric Anholt -Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-1-eric@anholt.net -Reviewed-by: Daniel Vetter ---- - drivers/gpu/drm/vc4/vc4_gem.c | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index a3e45e67f417..8b551bc630c4 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -119,7 +119,7 @@ vc4_get_hang_state_ioctl(struct drm_device *dev, void *data, - bo_state[i].size = vc4_bo->base.base.size; - } - -- if (copy_to_user((void __user *)(uintptr_t)get_state->bo, -+ if (copy_to_user(u64_to_user_ptr(get_state->bo), - bo_state, - state->bo_count * sizeof(*bo_state))) - ret = -EFAULT; -@@ -678,8 +678,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, - goto fail; - } - -- if (copy_from_user(handles, -- (void __user *)(uintptr_t)args->bo_handles, -+ if (copy_from_user(handles, u64_to_user_ptr(args->bo_handles), - exec->bo_count * sizeof(uint32_t))) { - ret = -EFAULT; - DRM_ERROR("Failed to copy in GEM handles\n"); -@@ -755,21 +754,21 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - exec->shader_state_size = args->shader_rec_count; - - if (copy_from_user(bin, -- (void __user *)(uintptr_t)args->bin_cl, -+ u64_to_user_ptr(args->bin_cl), - args->bin_cl_size)) { - ret = -EFAULT; - goto fail; - } - - if (copy_from_user(exec->shader_rec_u, -- (void __user *)(uintptr_t)args->shader_rec, -+ u64_to_user_ptr(args->shader_rec), - args->shader_rec_size)) { - ret = -EFAULT; - goto fail; - } - - if (copy_from_user(exec->uniforms_u, -- (void __user *)(uintptr_t)args->uniforms, -+ u64_to_user_ptr(args->uniforms), - args->uniforms_size)) { - ret = -EFAULT; - goto fail; --- -2.13.5 - -From da81d76bce216c160d2924a52e362b160bbb6ca1 Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Tue, 25 Jul 2017 11:27:17 -0700 -Subject: [PATCH 4/6] drm/vc4: Add an ioctl for labeling GEM BOs for summary - stats - -This has proven immensely useful for debugging memory leaks and -overallocation (which is a rather serious concern on the platform, -given that we typically run at about 256MB of CMA out of up to 1GB -total memory, with framebuffers that are about 8MB ecah). - -The state of the art without this is to dump debug logs from every GL -application, guess as to kernel allocations based on bo_stats, and try -to merge that all together into a global picture of memory allocation -state. With this, you can add a couple of calls to the debug build of -the 3D driver and get a pretty detailed view of GPU memory usage from -/debug/dri/0/bo_stats (or when we debug print to dmesg on allocation -failure). - -The Mesa side currently labels at the gallium resource level (so you -see that a 1920x20 pixmap has been created, presumably for the window -system panel), but we could extend that to be even more useful with -glObjectLabel() names being sent all the way down to the kernel. - -(partial) example of sorted debugfs output with Mesa labeling all -resources: - - kernel BO cache: 16392kb BOs (3) - tiling shadow 1920x1080: 8160kb BOs (1) - resource 1920x1080@32/0: 8160kb BOs (1) -scanout resource 1920x1080@32/0: 8100kb BOs (1) - kernel: 8100kb BOs (1) - -v2: Use strndup_user(), use lockdep assertion instead of just a - comment, fix an array[-1] reference, extend comment about name - freeing. - -Signed-off-by: Eric Anholt -Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-2-eric@anholt.net -Reviewed-by: Chris Wilson ---- - drivers/gpu/drm/vc4/vc4_bo.c | 258 ++++++++++++++++++++++++++++-------- - drivers/gpu/drm/vc4/vc4_drv.c | 8 +- - drivers/gpu/drm/vc4/vc4_drv.h | 39 +++++- - drivers/gpu/drm/vc4/vc4_gem.c | 2 +- - drivers/gpu/drm/vc4/vc4_render_cl.c | 2 +- - drivers/gpu/drm/vc4/vc4_v3d.c | 3 +- - include/uapi/drm/vc4_drm.h | 11 ++ - 7 files changed, 257 insertions(+), 66 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c -index ede80199001d..27c4a927311f 100644 ---- a/drivers/gpu/drm/vc4/vc4_bo.c -+++ b/drivers/gpu/drm/vc4/vc4_bo.c -@@ -24,21 +24,35 @@ - #include "vc4_drv.h" - #include "uapi/drm/vc4_drm.h" - -+static const char * const bo_type_names[] = { -+ "kernel", -+ "V3D", -+ "V3D shader", -+ "dumb", -+ "binner", -+ "RCL", -+ "BCL", -+ "kernel BO cache", -+}; -+ -+static bool is_user_label(int label) -+{ -+ return label >= VC4_BO_TYPE_COUNT; -+} -+ - static void vc4_bo_stats_dump(struct vc4_dev *vc4) - { -- DRM_INFO("num bos allocated: %d\n", -- vc4->bo_stats.num_allocated); -- DRM_INFO("size bos allocated: %dkb\n", -- vc4->bo_stats.size_allocated / 1024); -- DRM_INFO("num bos used: %d\n", -- vc4->bo_stats.num_allocated - vc4->bo_stats.num_cached); -- DRM_INFO("size bos used: %dkb\n", -- (vc4->bo_stats.size_allocated - -- vc4->bo_stats.size_cached) / 1024); -- DRM_INFO("num bos cached: %d\n", -- vc4->bo_stats.num_cached); -- DRM_INFO("size bos cached: %dkb\n", -- vc4->bo_stats.size_cached / 1024); -+ int i; -+ -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (!vc4->bo_labels[i].num_allocated) -+ continue; -+ -+ DRM_INFO("%30s: %6dkb BOs (%d)\n", -+ vc4->bo_labels[i].name, -+ vc4->bo_labels[i].size_allocated / 1024, -+ vc4->bo_labels[i].num_allocated); -+ } - } - - #ifdef CONFIG_DEBUG_FS -@@ -47,30 +61,103 @@ int vc4_bo_stats_debugfs(struct seq_file *m, void *unused) - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; - struct vc4_dev *vc4 = to_vc4_dev(dev); -- struct vc4_bo_stats stats; -+ int i; - -- /* Take a snapshot of the current stats with the lock held. */ - mutex_lock(&vc4->bo_lock); -- stats = vc4->bo_stats; -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (!vc4->bo_labels[i].num_allocated) -+ continue; -+ -+ seq_printf(m, "%30s: %6dkb BOs (%d)\n", -+ vc4->bo_labels[i].name, -+ vc4->bo_labels[i].size_allocated / 1024, -+ vc4->bo_labels[i].num_allocated); -+ } - mutex_unlock(&vc4->bo_lock); - -- seq_printf(m, "num bos allocated: %d\n", -- stats.num_allocated); -- seq_printf(m, "size bos allocated: %dkb\n", -- stats.size_allocated / 1024); -- seq_printf(m, "num bos used: %d\n", -- stats.num_allocated - stats.num_cached); -- seq_printf(m, "size bos used: %dkb\n", -- (stats.size_allocated - stats.size_cached) / 1024); -- seq_printf(m, "num bos cached: %d\n", -- stats.num_cached); -- seq_printf(m, "size bos cached: %dkb\n", -- stats.size_cached / 1024); -- - return 0; - } - #endif - -+/* Takes ownership of *name and returns the appropriate slot for it in -+ * the bo_labels[] array, extending it as necessary. -+ * -+ * This is inefficient and could use a hash table instead of walking -+ * an array and strcmp()ing. However, the assumption is that user -+ * labeling will be infrequent (scanout buffers and other long-lived -+ * objects, or debug driver builds), so we can live with it for now. -+ */ -+static int vc4_get_user_label(struct vc4_dev *vc4, const char *name) -+{ -+ int i; -+ int free_slot = -1; -+ -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (!vc4->bo_labels[i].name) { -+ free_slot = i; -+ } else if (strcmp(vc4->bo_labels[i].name, name) == 0) { -+ kfree(name); -+ return i; -+ } -+ } -+ -+ if (free_slot != -1) { -+ WARN_ON(vc4->bo_labels[free_slot].num_allocated != 0); -+ vc4->bo_labels[free_slot].name = name; -+ return free_slot; -+ } else { -+ u32 new_label_count = vc4->num_labels + 1; -+ struct vc4_label *new_labels = -+ krealloc(vc4->bo_labels, -+ new_label_count * sizeof(*new_labels), -+ GFP_KERNEL); -+ -+ if (!new_labels) { -+ kfree(name); -+ return -1; -+ } -+ -+ free_slot = vc4->num_labels; -+ vc4->bo_labels = new_labels; -+ vc4->num_labels = new_label_count; -+ -+ vc4->bo_labels[free_slot].name = name; -+ vc4->bo_labels[free_slot].num_allocated = 0; -+ vc4->bo_labels[free_slot].size_allocated = 0; -+ -+ return free_slot; -+ } -+} -+ -+static void vc4_bo_set_label(struct drm_gem_object *gem_obj, int label) -+{ -+ struct vc4_bo *bo = to_vc4_bo(gem_obj); -+ struct vc4_dev *vc4 = to_vc4_dev(gem_obj->dev); -+ -+ lockdep_assert_held(&vc4->bo_lock); -+ -+ if (label != -1) { -+ vc4->bo_labels[label].num_allocated++; -+ vc4->bo_labels[label].size_allocated += gem_obj->size; -+ } -+ -+ vc4->bo_labels[bo->label].num_allocated--; -+ vc4->bo_labels[bo->label].size_allocated -= gem_obj->size; -+ -+ if (vc4->bo_labels[bo->label].num_allocated == 0 && -+ is_user_label(bo->label)) { -+ /* Free user BO label slots on last unreference. -+ * Slots are just where we track the stats for a given -+ * name, and once a name is unused we can reuse that -+ * slot. -+ */ -+ kfree(vc4->bo_labels[bo->label].name); -+ vc4->bo_labels[bo->label].name = NULL; -+ } -+ -+ bo->label = label; -+} -+ - static uint32_t bo_page_index(size_t size) - { - return (size / PAGE_SIZE) - 1; -@@ -80,7 +167,8 @@ static uint32_t bo_page_index(size_t size) - static void vc4_bo_destroy(struct vc4_bo *bo) - { - struct drm_gem_object *obj = &bo->base.base; -- struct vc4_dev *vc4 = to_vc4_dev(obj->dev); -+ -+ vc4_bo_set_label(obj, -1); - - if (bo->validated_shader) { - kfree(bo->validated_shader->texture_samples); -@@ -88,9 +176,6 @@ static void vc4_bo_destroy(struct vc4_bo *bo) - bo->validated_shader = NULL; - } - -- vc4->bo_stats.num_allocated--; -- vc4->bo_stats.size_allocated -= obj->size; -- - reservation_object_fini(&bo->_resv); - - drm_gem_cma_free_object(obj); -@@ -99,12 +184,6 @@ static void vc4_bo_destroy(struct vc4_bo *bo) - /* Must be called with bo_lock held. */ - static void vc4_bo_remove_from_cache(struct vc4_bo *bo) - { -- struct drm_gem_object *obj = &bo->base.base; -- struct vc4_dev *vc4 = to_vc4_dev(obj->dev); -- -- vc4->bo_stats.num_cached--; -- vc4->bo_stats.size_cached -= obj->size; -- - list_del(&bo->unref_head); - list_del(&bo->size_head); - } -@@ -165,7 +244,8 @@ static void vc4_bo_cache_purge(struct drm_device *dev) - } - - static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev, -- uint32_t size) -+ uint32_t size, -+ enum vc4_kernel_bo_type type) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); - uint32_t page_index = bo_page_index(size); -@@ -186,6 +266,8 @@ static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev, - kref_init(&bo->base.base.refcount); - - out: -+ if (bo) -+ vc4_bo_set_label(&bo->base.base, type); - mutex_unlock(&vc4->bo_lock); - return bo; - } -@@ -208,8 +290,9 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size) - return ERR_PTR(-ENOMEM); - - mutex_lock(&vc4->bo_lock); -- vc4->bo_stats.num_allocated++; -- vc4->bo_stats.size_allocated += size; -+ bo->label = VC4_BO_TYPE_KERNEL; -+ vc4->bo_labels[VC4_BO_TYPE_KERNEL].num_allocated++; -+ vc4->bo_labels[VC4_BO_TYPE_KERNEL].size_allocated += size; - mutex_unlock(&vc4->bo_lock); - bo->resv = &bo->_resv; - reservation_object_init(bo->resv); -@@ -218,7 +301,7 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size) - } - - struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, -- bool allow_unzeroed) -+ bool allow_unzeroed, enum vc4_kernel_bo_type type) - { - size_t size = roundup(unaligned_size, PAGE_SIZE); - struct vc4_dev *vc4 = to_vc4_dev(dev); -@@ -229,7 +312,7 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, - return ERR_PTR(-EINVAL); - - /* First, try to get a vc4_bo from the kernel BO cache. */ -- bo = vc4_bo_get_from_cache(dev, size); -+ bo = vc4_bo_get_from_cache(dev, size, type); - if (bo) { - if (!allow_unzeroed) - memset(bo->base.vaddr, 0, bo->base.base.size); -@@ -251,7 +334,13 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, - return ERR_PTR(-ENOMEM); - } - } -- return to_vc4_bo(&cma_obj->base); -+ bo = to_vc4_bo(&cma_obj->base); -+ -+ mutex_lock(&vc4->bo_lock); -+ vc4_bo_set_label(&cma_obj->base, type); -+ mutex_unlock(&vc4->bo_lock); -+ -+ return bo; - } - - int vc4_dumb_create(struct drm_file *file_priv, -@@ -268,7 +357,7 @@ int vc4_dumb_create(struct drm_file *file_priv, - if (args->size < args->pitch * args->height) - args->size = args->pitch * args->height; - -- bo = vc4_bo_create(dev, args->size, false); -+ bo = vc4_bo_create(dev, args->size, false, VC4_BO_TYPE_DUMB); - if (IS_ERR(bo)) - return PTR_ERR(bo); - -@@ -348,8 +437,7 @@ void vc4_free_object(struct drm_gem_object *gem_bo) - list_add(&bo->size_head, cache_list); - list_add(&bo->unref_head, &vc4->bo_cache.time_list); - -- vc4->bo_stats.num_cached++; -- vc4->bo_stats.size_cached += gem_bo->size; -+ vc4_bo_set_label(&bo->base.base, VC4_BO_TYPE_KERNEL_CACHE); - - vc4_bo_cache_free_old(dev); - -@@ -483,7 +571,7 @@ int vc4_create_bo_ioctl(struct drm_device *dev, void *data, - * We can't allocate from the BO cache, because the BOs don't - * get zeroed, and that might leak data between users. - */ -- bo = vc4_bo_create(dev, args->size, false); -+ bo = vc4_bo_create(dev, args->size, false, VC4_BO_TYPE_V3D); - if (IS_ERR(bo)) - return PTR_ERR(bo); - -@@ -536,7 +624,7 @@ vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, - return -EINVAL; - } - -- bo = vc4_bo_create(dev, args->size, true); -+ bo = vc4_bo_create(dev, args->size, true, VC4_BO_TYPE_V3D_SHADER); - if (IS_ERR(bo)) - return PTR_ERR(bo); - -@@ -651,9 +739,24 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, - return 0; - } - --void vc4_bo_cache_init(struct drm_device *dev) -+int vc4_bo_cache_init(struct drm_device *dev) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); -+ int i; -+ -+ /* Create the initial set of BO labels that the kernel will -+ * use. This lets us avoid a bunch of string reallocation in -+ * the kernel's draw and BO allocation paths. -+ */ -+ vc4->bo_labels = kcalloc(VC4_BO_TYPE_COUNT, sizeof(*vc4->bo_labels), -+ GFP_KERNEL); -+ if (!vc4->bo_labels) -+ return -ENOMEM; -+ vc4->num_labels = VC4_BO_TYPE_COUNT; -+ -+ BUILD_BUG_ON(ARRAY_SIZE(bo_type_names) != VC4_BO_TYPE_COUNT); -+ for (i = 0; i < VC4_BO_TYPE_COUNT; i++) -+ vc4->bo_labels[i].name = bo_type_names[i]; - - mutex_init(&vc4->bo_lock); - -@@ -663,19 +766,66 @@ void vc4_bo_cache_init(struct drm_device *dev) - setup_timer(&vc4->bo_cache.time_timer, - vc4_bo_cache_time_timer, - (unsigned long)dev); -+ -+ return 0; - } - - void vc4_bo_cache_destroy(struct drm_device *dev) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); -+ int i; - - del_timer(&vc4->bo_cache.time_timer); - cancel_work_sync(&vc4->bo_cache.time_work); - - vc4_bo_cache_purge(dev); - -- if (vc4->bo_stats.num_allocated) { -- DRM_ERROR("Destroying BO cache while BOs still allocated:\n"); -- vc4_bo_stats_dump(vc4); -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (vc4->bo_labels[i].num_allocated) { -+ DRM_ERROR("Destroying BO cache with %d %s " -+ "BOs still allocated\n", -+ vc4->bo_labels[i].num_allocated, -+ vc4->bo_labels[i].name); -+ } -+ -+ if (is_user_label(i)) -+ kfree(vc4->bo_labels[i].name); - } -+ kfree(vc4->bo_labels); -+} -+ -+int vc4_label_bo_ioctl(struct drm_device *dev, void *data, -+ struct drm_file *file_priv) -+{ -+ struct vc4_dev *vc4 = to_vc4_dev(dev); -+ struct drm_vc4_label_bo *args = data; -+ char *name; -+ struct drm_gem_object *gem_obj; -+ int ret = 0, label; -+ -+ if (!args->len) -+ return -EINVAL; -+ -+ name = strndup_user(u64_to_user_ptr(args->name), args->len + 1); -+ if (IS_ERR(name)) -+ return PTR_ERR(name); -+ -+ gem_obj = drm_gem_object_lookup(file_priv, args->handle); -+ if (!gem_obj) { -+ DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ kfree(name); -+ return -ENOENT; -+ } -+ -+ mutex_lock(&vc4->bo_lock); -+ label = vc4_get_user_label(vc4, name); -+ if (label != -1) -+ vc4_bo_set_label(gem_obj, label); -+ else -+ ret = -ENOMEM; -+ mutex_unlock(&vc4->bo_lock); -+ -+ drm_gem_object_unreference_unlocked(gem_obj); -+ -+ return ret; - } -diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c -index c6b487c3d2b7..75c1f50a7b5d 100644 ---- a/drivers/gpu/drm/vc4/vc4_drv.c -+++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -140,6 +140,7 @@ static const struct drm_ioctl_desc vc4_drm_ioctls[] = { - DRM_IOCTL_DEF_DRV(VC4_GET_PARAM, vc4_get_param_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(VC4_SET_TILING, vc4_set_tiling_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(VC4_GET_TILING, vc4_get_tiling_ioctl, DRM_RENDER_ALLOW), -+ DRM_IOCTL_DEF_DRV(VC4_LABEL_BO, vc4_label_bo_ioctl, DRM_RENDER_ALLOW), - }; - - static struct drm_driver vc4_drm_driver = { -@@ -257,7 +258,9 @@ static int vc4_drm_bind(struct device *dev) - vc4->dev = drm; - drm->dev_private = vc4; - -- vc4_bo_cache_init(drm); -+ ret = vc4_bo_cache_init(drm); -+ if (ret) -+ goto dev_unref; - - drm_mode_config_init(drm); - -@@ -281,8 +284,9 @@ static int vc4_drm_bind(struct device *dev) - component_unbind_all(dev, drm); - gem_destroy: - vc4_gem_destroy(drm); -- drm_dev_unref(drm); - vc4_bo_cache_destroy(drm); -+dev_unref: -+ drm_dev_unref(drm); - return ret; - } - -diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index df22698d62ee..75d9957cb76d 100644 ---- a/drivers/gpu/drm/vc4/vc4_drv.h -+++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -11,6 +11,24 @@ - #include - #include - -+/* Don't forget to update vc4_bo.c: bo_type_names[] when adding to -+ * this. -+ */ -+enum vc4_kernel_bo_type { -+ /* Any kernel allocation (gem_create_object hook) before it -+ * gets another type set. -+ */ -+ VC4_BO_TYPE_KERNEL, -+ VC4_BO_TYPE_V3D, -+ VC4_BO_TYPE_V3D_SHADER, -+ VC4_BO_TYPE_DUMB, -+ VC4_BO_TYPE_BIN, -+ VC4_BO_TYPE_RCL, -+ VC4_BO_TYPE_BCL, -+ VC4_BO_TYPE_KERNEL_CACHE, -+ VC4_BO_TYPE_COUNT -+}; -+ - struct vc4_dev { - struct drm_device *dev; - -@@ -46,14 +64,14 @@ struct vc4_dev { - struct timer_list time_timer; - } bo_cache; - -- struct vc4_bo_stats { -+ u32 num_labels; -+ struct vc4_label { -+ const char *name; - u32 num_allocated; - u32 size_allocated; -- u32 num_cached; -- u32 size_cached; -- } bo_stats; -+ } *bo_labels; - -- /* Protects bo_cache and the BO stats. */ -+ /* Protects bo_cache and bo_labels. */ - struct mutex bo_lock; - - uint64_t dma_fence_context; -@@ -169,6 +187,11 @@ struct vc4_bo { - /* normally (resv == &_resv) except for imported bo's */ - struct reservation_object *resv; - struct reservation_object _resv; -+ -+ /* One of enum vc4_kernel_bo_type, or VC4_BO_TYPE_COUNT + i -+ * for user-allocated labels. -+ */ -+ int label; - }; - - static inline struct vc4_bo * -@@ -460,7 +483,7 @@ struct vc4_validated_shader_info { - struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size); - void vc4_free_object(struct drm_gem_object *gem_obj); - struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size, -- bool from_cache); -+ bool from_cache, enum vc4_kernel_bo_type type); - int vc4_dumb_create(struct drm_file *file_priv, - struct drm_device *dev, - struct drm_mode_create_dumb *args); -@@ -478,6 +501,8 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); - int vc4_get_hang_state_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -+int vc4_label_bo_ioctl(struct drm_device *dev, void *data, -+ struct drm_file *file_priv); - int vc4_mmap(struct file *filp, struct vm_area_struct *vma); - struct reservation_object *vc4_prime_res_obj(struct drm_gem_object *obj); - int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); -@@ -485,7 +510,7 @@ struct drm_gem_object *vc4_prime_import_sg_table(struct drm_device *dev, - struct dma_buf_attachment *attach, - struct sg_table *sgt); - void *vc4_prime_vmap(struct drm_gem_object *obj); --void vc4_bo_cache_init(struct drm_device *dev); -+int vc4_bo_cache_init(struct drm_device *dev); - void vc4_bo_cache_destroy(struct drm_device *dev); - int vc4_bo_stats_debugfs(struct seq_file *m, void *arg); - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index 8b551bc630c4..80f1953b4938 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -774,7 +774,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - goto fail; - } - -- bo = vc4_bo_create(dev, exec_size, true); -+ bo = vc4_bo_create(dev, exec_size, true, VC4_BO_TYPE_BCL); - if (IS_ERR(bo)) { - DRM_ERROR("Couldn't allocate BO for binning\n"); - ret = PTR_ERR(bo); -diff --git a/drivers/gpu/drm/vc4/vc4_render_cl.c b/drivers/gpu/drm/vc4/vc4_render_cl.c -index da3bfd53f0bd..e0539731130b 100644 ---- a/drivers/gpu/drm/vc4/vc4_render_cl.c -+++ b/drivers/gpu/drm/vc4/vc4_render_cl.c -@@ -320,7 +320,7 @@ static int vc4_create_rcl_bo(struct drm_device *dev, struct vc4_exec_info *exec, - - size += xtiles * ytiles * loop_body_size; - -- setup->rcl = &vc4_bo_create(dev, size, true)->base; -+ setup->rcl = &vc4_bo_create(dev, size, true, VC4_BO_TYPE_RCL)->base; - if (IS_ERR(setup->rcl)) - return PTR_ERR(setup->rcl); - list_add_tail(&to_vc4_bo(&setup->rcl->base)->unref_head, -diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c -index 8c723da71f66..622cd43840b8 100644 ---- a/drivers/gpu/drm/vc4/vc4_v3d.c -+++ b/drivers/gpu/drm/vc4/vc4_v3d.c -@@ -236,7 +236,8 @@ vc4_allocate_bin_bo(struct drm_device *drm) - INIT_LIST_HEAD(&list); - - while (true) { -- struct vc4_bo *bo = vc4_bo_create(drm, size, true); -+ struct vc4_bo *bo = vc4_bo_create(drm, size, true, -+ VC4_BO_TYPE_BIN); - - if (IS_ERR(bo)) { - ret = PTR_ERR(bo); -diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h -index 6ac4c5c014cb..551628e571f9 100644 ---- a/include/uapi/drm/vc4_drm.h -+++ b/include/uapi/drm/vc4_drm.h -@@ -40,6 +40,7 @@ extern "C" { - #define DRM_VC4_GET_PARAM 0x07 - #define DRM_VC4_SET_TILING 0x08 - #define DRM_VC4_GET_TILING 0x09 -+#define DRM_VC4_LABEL_BO 0x0a - - #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl) - #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno) -@@ -51,6 +52,7 @@ extern "C" { - #define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param) - #define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling) - #define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling) -+#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo) - - struct drm_vc4_submit_rcl_surface { - __u32 hindex; /* Handle index, or ~0 if not present. */ -@@ -311,6 +313,15 @@ struct drm_vc4_set_tiling { - __u64 modifier; - }; - -+/** -+ * struct drm_vc4_label_bo - Attach a name to a BO for debug purposes. -+ */ -+struct drm_vc4_label_bo { -+ __u32 handle; -+ __u32 len; -+ __u64 name; -+}; -+ - #if defined(__cplusplus) - } - #endif --- -2.13.5 - -From 34cbed8ed9441caa13017108dac189e09c35f9af Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Wed, 2 Aug 2017 13:32:40 -0700 -Subject: [PATCH 5/6] drm/vc4: Fix double destroy of the BO cache on teardown. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It's also destroyed from the top level vc4_drv.c initialization, which -is where the cache was actually initialized from. - -This used to just involve duplicate del_timer() and cancel_work_sync() -being called, but it started causing kmalloc issues once we -double-freed the new BO label array. - -Fixes: 1908a876f909 ("drm/vc4: Add an ioctl for labeling GEM BOs for summary stats") -Signed-off-by: Eric Anholt -Link: https://patchwork.freedesktop.org/patch/msgid/20170802203242.12815-1-eric@anholt.net -Tested-by: Noralf Trønnes -Acked-by: Noralf Trønnes -Reviewed-by: Boris Brezillon ---- - drivers/gpu/drm/vc4/vc4_gem.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index 80f1953b4938..624177b9cce4 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -1117,6 +1117,4 @@ vc4_gem_destroy(struct drm_device *dev) - - if (vc4->hang_state) - vc4_free_hang_state(dev, vc4->hang_state); -- -- vc4_bo_cache_destroy(dev); - } --- -2.13.5 - -From 4f218eea5be54c8506e6db700750e8b8019dc6af Mon Sep 17 00:00:00 2001 -From: Boris Brezillon -Date: Fri, 16 Jun 2017 10:30:33 +0200 -Subject: [PATCH 6/6] drm/vc4: Send a VBLANK event when disabling a CRTC - -VBLANK events are missed when the CRTC is being disabled because the -driver does not wait till the end of the frame before stopping the -HVS and PV blocks. In this case, we should explicitly issue a VBLANK -event if there's one waiting. - -Signed-off-by: Boris Brezillon -Reviewed-by: Eric Anholt -Link: http://patchwork.freedesktop.org/patch/msgid/1497601833-24588-1-git-send-email-boris.brezillon@free-electrons.com ---- - drivers/gpu/drm/vc4/vc4_crtc.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index a12cc7ea99b6..b0582ad3f459 100644 ---- a/drivers/gpu/drm/vc4/vc4_crtc.c -+++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -518,6 +518,19 @@ static void vc4_crtc_disable(struct drm_crtc *crtc) - WARN_ON_ONCE((HVS_READ(SCALER_DISPSTATX(chan)) & - (SCALER_DISPSTATX_FULL | SCALER_DISPSTATX_EMPTY)) != - SCALER_DISPSTATX_EMPTY); -+ -+ /* -+ * Make sure we issue a vblank event after disabling the CRTC if -+ * someone was waiting it. -+ */ -+ if (crtc->state->event) { -+ unsigned long flags; -+ -+ spin_lock_irqsave(&dev->event_lock, flags); -+ drm_crtc_send_vblank_event(crtc, crtc->state->event); -+ crtc->state->event = NULL; -+ spin_unlock_irqrestore(&dev->event_lock, flags); -+ } - } - - static void vc4_crtc_update_dlist(struct drm_crtc *crtc) --- -2.13.5 - diff --git a/config_generation b/config_generation index 6708b1022..64ae444f4 100644 --- a/config_generation +++ b/config_generation @@ -5,7 +5,7 @@ # x86_64 x86_64=baseconfig:baseconfig-x86:baseconfig-x86-x86_64 -x86_64-debug=baseconfig:baseconfig-x86:baseconfig-x86-x86_64:debugconfig:debugconfig-x86 +x86_64-debug=baseconfig:baseconfig-x86:baseconfig-x86-x86_64:debugconfig:debugconfig-x86:debugconfig-x86-x86_64 # i686 i686=baseconfig:baseconfig-x86:baseconfig-x86-i686 diff --git a/drm-cma-reduce-dmesg-logs.patch b/drm-cma-reduce-dmesg-logs.patch index 2e39d6e70..d7252c498 100644 --- a/drm-cma-reduce-dmesg-logs.patch +++ b/drm-cma-reduce-dmesg-logs.patch @@ -41,56 +41,3 @@ index 373e33f22be4..020e7668dfab 100644 size); ret = -ENOMEM; goto error; -From patchwork Wed Oct 4 12:54:47 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: cma: Take __GFP_NOWARN into account in cma_alloc() -From: Boris Brezillon -X-Patchwork-Id: 180554 -Message-Id: <20171004125447.15195-1-boris.brezillon@free-electrons.com> -To: linux-mm@kvack.org, Andrew Morton , - Laura Abbott -Cc: Boris Brezillon , - Jaewon Kim , dri-devel@lists.freedesktop.org -Date: Wed, 4 Oct 2017 14:54:47 +0200 - -cma_alloc() unconditionally prints an INFO message when the CMA -allocation fails. Make this message conditional on the non-presence of -__GFP_NOWARN in gfp_mask. - -Signed-off-by: Boris Brezillon -Acked-by: Laura Abbott ---- -Hello, - -This patch aims at removing INFO messages that are displayed when the -VC4 driver tries to allocate buffer objects. From the driver perspective -an allocation failure is acceptable, and the driver can possibly do -something to make following allocation succeed (like flushing the VC4 -internal cache). - -Also, I don't understand why this message is only an INFO message, and -not a WARN (pr_warn()). Please let me know if you have good reasons to -keep it as an unconditional pr_info(). - -Thanks, - -Boris ---- - mm/cma.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mm/cma.c b/mm/cma.c -index c0da318c020e..022e52bd8370 100644 ---- a/mm/cma.c -+++ b/mm/cma.c -@@ -460,7 +460,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, - - trace_cma_alloc(pfn, page, count, align); - -- if (ret) { -+ if (ret && !(gfp_mask & __GFP_NOWARN)) { - pr_info("%s: alloc failed, req-size: %zu pages, ret: %d\n", - __func__, count, ret); - cma_debug_show_areas(cma); diff --git a/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch b/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch new file mode 100644 index 000000000..07f81116a --- /dev/null +++ b/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch @@ -0,0 +1,200 @@ +From patchwork Thu Aug 17 12:37:06 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit +Subject: drm/i915: Boost GPU clocks if we miss the pageflip's vblank +From: Chris Wilson +X-Patchwork-Id: 172204 +Message-Id: <20170817123706.6777-1-chris@chris-wilson.co.uk> +To: intel-gfx@lists.freedesktop.org +Cc: Daniel Vetter +Date: Thu, 17 Aug 2017 13:37:06 +0100 + +If we miss the current vblank because the gpu was busy, that may cause a +jitter as the frame rate temporarily drops. We try to limit the impact +of this by then boosting the GPU clock to deliver the frame as quickly +as possible. Originally done in commit 6ad790c0f5ac ("drm/i915: Boost GPU +frequency if we detect outstanding pageflips") but was never forward +ported to atomic and finally dropped in commit fd3a40242e87 ("drm/i915: +Rip out legacy page_flip completion/irq handling"). + +References: https://bugs.freedesktop.org/show_bug.cgi?id=102199 +Signed-off-by: Chris Wilson +Cc: Maarten Lankhorst +Cc: Ville Syrjälä +Cc: Daniel Vetter +Tested-by: Lyude Paul +Reviewed-by: Radoslaw Szwichtenberg +--- + drivers/gpu/drm/i915/intel_display.c | 59 ++++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/intel_drv.h | 1 - + drivers/gpu/drm/i915/intel_pm.c | 42 ++----------------------- + 3 files changed, 62 insertions(+), 40 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 0e93ec201fe3..7d5b19553637 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -12636,6 +12636,55 @@ static const struct drm_crtc_funcs intel_crtc_funcs = { + .set_crc_source = intel_crtc_set_crc_source, + }; + ++struct wait_rps_boost { ++ struct wait_queue_entry wait; ++ ++ struct drm_crtc *crtc; ++ struct drm_i915_gem_request *request; ++}; ++ ++static int do_rps_boost(struct wait_queue_entry *_wait, ++ unsigned mode, int sync, void *key) ++{ ++ struct wait_rps_boost *wait = container_of(_wait, typeof(*wait), wait); ++ struct drm_i915_gem_request *rq = wait->request; ++ ++ gen6_rps_boost(rq, NULL); ++ i915_gem_request_put(rq); ++ ++ drm_crtc_vblank_put(wait->crtc); ++ ++ list_del(&wait->wait.entry); ++ kfree(wait); ++ return 1; ++} ++ ++static void add_rps_boost_after_vblank(struct drm_crtc *crtc, ++ struct dma_fence *fence) ++{ ++ struct wait_rps_boost *wait; ++ ++ if (!dma_fence_is_i915(fence)) ++ return; ++ ++ if (drm_crtc_vblank_get(crtc)) ++ return; ++ ++ wait = kmalloc(sizeof(*wait), GFP_KERNEL); ++ if (!wait) { ++ drm_crtc_vblank_put(crtc); ++ return; ++ } ++ ++ wait->request = to_request(dma_fence_get(fence)); ++ wait->crtc = crtc; ++ ++ wait->wait.func = do_rps_boost; ++ wait->wait.flags = 0; ++ ++ add_wait_queue(drm_crtc_vblank_waitqueue(crtc), &wait->wait); ++} ++ + /** + * intel_prepare_plane_fb - Prepare fb for usage on plane + * @plane: drm plane to prepare for +@@ -12733,12 +12782,22 @@ intel_prepare_plane_fb(struct drm_plane *plane, + return ret; + + if (!new_state->fence) { /* implicit fencing */ ++ struct dma_fence *fence; ++ + ret = i915_sw_fence_await_reservation(&intel_state->commit_ready, + obj->resv, NULL, + false, I915_FENCE_TIMEOUT, + GFP_KERNEL); + if (ret < 0) + return ret; ++ ++ fence = reservation_object_get_excl_rcu(obj->resv); ++ if (fence) { ++ add_rps_boost_after_vblank(new_state->crtc, fence); ++ dma_fence_put(fence); ++ } ++ } else { ++ add_rps_boost_after_vblank(new_state->crtc, new_state->fence); + } + + return 0; +diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h +index fa47285918f4..e092354b4d63 100644 +--- a/drivers/gpu/drm/i915/intel_drv.h ++++ b/drivers/gpu/drm/i915/intel_drv.h +@@ -1844,7 +1844,6 @@ void gen6_rps_reset_ei(struct drm_i915_private *dev_priv); + void gen6_rps_idle(struct drm_i915_private *dev_priv); + void gen6_rps_boost(struct drm_i915_gem_request *rq, + struct intel_rps_client *rps); +-void intel_queue_rps_boost_for_request(struct drm_i915_gem_request *req); + void g4x_wm_get_hw_state(struct drm_device *dev); + void vlv_wm_get_hw_state(struct drm_device *dev); + void ilk_wm_get_hw_state(struct drm_device *dev); +diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c +index ed662937ec3c..c9fa2eb1903c 100644 +--- a/drivers/gpu/drm/i915/intel_pm.c ++++ b/drivers/gpu/drm/i915/intel_pm.c +@@ -6169,6 +6169,7 @@ void gen6_rps_boost(struct drm_i915_gem_request *rq, + struct intel_rps_client *rps) + { + struct drm_i915_private *i915 = rq->i915; ++ unsigned long flags; + bool boost; + + /* This is intentionally racy! We peek at the state here, then +@@ -6178,13 +6179,13 @@ void gen6_rps_boost(struct drm_i915_gem_request *rq, + return; + + boost = false; +- spin_lock_irq(&rq->lock); ++ spin_lock_irqsave(&rq->lock, flags); + if (!rq->waitboost && !i915_gem_request_completed(rq)) { + atomic_inc(&i915->rps.num_waiters); + rq->waitboost = true; + boost = true; + } +- spin_unlock_irq(&rq->lock); ++ spin_unlock_irqrestore(&rq->lock, flags); + if (!boost) + return; + +@@ -9132,43 +9133,6 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val) + return DIV_ROUND_CLOSEST(val, GT_FREQUENCY_MULTIPLIER); + } + +-struct request_boost { +- struct work_struct work; +- struct drm_i915_gem_request *req; +-}; +- +-static void __intel_rps_boost_work(struct work_struct *work) +-{ +- struct request_boost *boost = container_of(work, struct request_boost, work); +- struct drm_i915_gem_request *req = boost->req; +- +- if (!i915_gem_request_completed(req)) +- gen6_rps_boost(req, NULL); +- +- i915_gem_request_put(req); +- kfree(boost); +-} +- +-void intel_queue_rps_boost_for_request(struct drm_i915_gem_request *req) +-{ +- struct request_boost *boost; +- +- if (req == NULL || INTEL_GEN(req->i915) < 6) +- return; +- +- if (i915_gem_request_completed(req)) +- return; +- +- boost = kmalloc(sizeof(*boost), GFP_ATOMIC); +- if (boost == NULL) +- return; +- +- boost->req = i915_gem_request_get(req); +- +- INIT_WORK(&boost->work, __intel_rps_boost_work); +- queue_work(req->i915->wq, &boost->work); +-} +- + void intel_pm_setup(struct drm_i915_private *dev_priv) + { + mutex_init(&dev_priv->rps.hw_lock); diff --git a/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch b/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch deleted file mode 100644 index 0bd0e7cef..000000000 --- a/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch +++ /dev/null @@ -1,238 +0,0 @@ -From 333e2a813cdfb86ff286ece6f13bec371aa03d7b Mon Sep 17 00:00:00 2001 -From: Chris Wilson -Date: Thu, 17 Aug 2017 13:37:06 +0100 -Subject: [PATCH] drm/i915: Boost GPU clocks if we miss the pageflip's vblank -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If we miss the current vblank because the gpu was busy, that may cause a -jitter as the frame rate temporarily drops. We try to limit the impact -of this by then boosting the GPU clock to deliver the frame as quickly -as possible. Originally done in commit 6ad790c0f5ac ("drm/i915: Boost GPU -frequency if we detect outstanding pageflips") but was never forward -ported to atomic and finally dropped in commit fd3a40242e87 ("drm/i915: -Rip out legacy page_flip completion/irq handling"). - -One of the most typical use-cases for this is a mostly idle desktop. -Rendering one frame of the desktop's frontbuffer can easily be -accomplished by the GPU running at low frequency, but often exceeds -the time budget of the desktop compositor. The result is that animations -such as opening the menu, doing a fullscreen switch, or even just trying -to move a window around are slow and jerky. We need to respond within a -frame to give the best impression of a smooth UX, as a compromise we -instead respond if that first frame misses its goal. The result should -be a near-imperceivable initial delay and a smooth animation even -starting from idle. The cost, as ever, is that we spend more power than -is strictly necessary as we overestimate the required GPU frequency and -then try to ramp down. - -This of course is reactionary, too little, too late; nevertheless it is -surprisingly effective. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102199 -Signed-off-by: Chris Wilson -Cc: Maarten Lankhorst -Cc: Ville Syrjälä -Cc: Daniel Vetter -Link: https://patchwork.freedesktop.org/patch/msgid/20170817123706.6777-1-chris@chris-wilson.co.uk -Tested-by: Lyude Paul -Reviewed-by: Radoslaw Szwichtenberg ---- - drivers/gpu/drm/i915/i915_gem.c | 10 +++--- - drivers/gpu/drm/i915/intel_display.c | 63 ++++++++++++++++++++++++++++++++++++ - drivers/gpu/drm/i915/intel_pm.c | 14 ++++---- - 3 files changed, 77 insertions(+), 10 deletions(-) - -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 969bac8404f1..7d409b29d75a 100644 ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -355,6 +355,7 @@ i915_gem_object_wait_fence(struct dma_fence *fence, - long timeout, - struct intel_rps_client *rps) - { -+ unsigned long irq_flags; - struct drm_i915_gem_request *rq; - - BUILD_BUG_ON(I915_WAIT_INTERRUPTIBLE != 0x1); -@@ -410,9 +411,9 @@ i915_gem_object_wait_fence(struct dma_fence *fence, - * Compensate by giving the synchronous client credit for - * a waitboost next time. - */ -- spin_lock(&rq->i915->rps.client_lock); -+ spin_lock_irqsave(&rq->i915->rps.client_lock, irq_flags); - list_del_init(&rps->link); -- spin_unlock(&rq->i915->rps.client_lock); -+ spin_unlock_irqrestore(&rq->i915->rps.client_lock, irq_flags); - } - - return timeout; -@@ -5029,6 +5030,7 @@ void i915_gem_release(struct drm_device *dev, struct drm_file *file) - { - struct drm_i915_file_private *file_priv = file->driver_priv; - struct drm_i915_gem_request *request; -+ unsigned long flags; - - /* Clean up our request list when the client is going away, so that - * later retire_requests won't dereference our soon-to-be-gone -@@ -5040,9 +5042,9 @@ void i915_gem_release(struct drm_device *dev, struct drm_file *file) - spin_unlock(&file_priv->mm.lock); - - if (!list_empty(&file_priv->rps.link)) { -- spin_lock(&to_i915(dev)->rps.client_lock); -+ spin_lock_irqsave(&to_i915(dev)->rps.client_lock, flags); - list_del(&file_priv->rps.link); -- spin_unlock(&to_i915(dev)->rps.client_lock); -+ spin_unlock_irqrestore(&to_i915(dev)->rps.client_lock, flags); - } - } - -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 022125082649..875eb7aec2f1 100644 ---- a/drivers/gpu/drm/i915/intel_display.c -+++ b/drivers/gpu/drm/i915/intel_display.c -@@ -13301,6 +13301,58 @@ static const struct drm_crtc_funcs intel_crtc_funcs = { - .set_crc_source = intel_crtc_set_crc_source, - }; - -+struct wait_rps_boost { -+ struct wait_queue_entry wait; -+ -+ struct drm_crtc *crtc; -+ struct drm_i915_gem_request *request; -+}; -+ -+static int do_rps_boost(struct wait_queue_entry *_wait, -+ unsigned mode, int sync, void *key) -+{ -+ struct wait_rps_boost *wait = container_of(_wait, typeof(*wait), wait); -+ struct drm_i915_gem_request *rq = wait->request; -+ -+ gen6_rps_boost(rq->i915, NULL, rq->emitted_jiffies); -+ i915_gem_request_put(rq); -+ -+ drm_crtc_vblank_put(wait->crtc); -+ -+ list_del(&wait->wait.entry); -+ kfree(wait); -+ return 1; -+} -+ -+static void add_rps_boost_after_vblank(struct drm_crtc *crtc, -+ struct dma_fence *fence) -+{ -+ struct wait_rps_boost *wait; -+ -+ if (!dma_fence_is_i915(fence)) -+ return; -+ -+ if (INTEL_GEN(to_i915(crtc->dev)) < 6) -+ return; -+ -+ if (drm_crtc_vblank_get(crtc)) -+ return; -+ -+ wait = kmalloc(sizeof(*wait), GFP_KERNEL); -+ if (!wait) { -+ drm_crtc_vblank_put(crtc); -+ return; -+ } -+ -+ wait->request = to_request(dma_fence_get(fence)); -+ wait->crtc = crtc; -+ -+ wait->wait.func = do_rps_boost; -+ wait->wait.flags = 0; -+ -+ add_wait_queue(drm_crtc_vblank_waitqueue(crtc), &wait->wait); -+} -+ - /** - * intel_prepare_plane_fb - Prepare fb for usage on plane - * @plane: drm plane to prepare for -@@ -13392,6 +13444,8 @@ intel_prepare_plane_fb(struct drm_plane *plane, - return 0; - - if (!new_state->fence) { /* implicit fencing */ -+ struct dma_fence *fence; -+ - ret = i915_sw_fence_await_reservation(&intel_state->commit_ready, - obj->resv, NULL, - false, I915_FENCE_TIMEOUT, -@@ -13399,7 +13453,16 @@ intel_prepare_plane_fb(struct drm_plane *plane, - if (ret < 0) - return ret; - -+ fence = reservation_object_get_excl_rcu(obj->resv); -+ if (fence) { -+ add_rps_boost_after_vblank(new_state->crtc, fence); -+ dma_fence_put(fence); -+ } -+ - i915_gem_object_wait_priority(obj, 0, I915_PRIORITY_DISPLAY); -+ -+ } else { -+ add_rps_boost_after_vblank(new_state->crtc, new_state->fence); - } - - return 0; -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 40b224b44d1b..b0ee9c4d33f4 100644 ---- a/drivers/gpu/drm/i915/intel_pm.c -+++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -6108,6 +6108,7 @@ void gen6_rps_busy(struct drm_i915_private *dev_priv) - - void gen6_rps_idle(struct drm_i915_private *dev_priv) - { -+ unsigned long flags; - /* Flush our bottom-half so that it does not race with us - * setting the idle frequency and so that it is bounded by - * our rpm wakeref. And then disable the interrupts to stop any -@@ -6127,16 +6128,17 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) - } - mutex_unlock(&dev_priv->rps.hw_lock); - -- spin_lock(&dev_priv->rps.client_lock); -+ spin_lock_irqsave(&dev_priv->rps.client_lock, flags); - while (!list_empty(&dev_priv->rps.clients)) - list_del_init(dev_priv->rps.clients.next); -- spin_unlock(&dev_priv->rps.client_lock); -+ spin_unlock_irqrestore(&dev_priv->rps.client_lock, flags); - } - - void gen6_rps_boost(struct drm_i915_private *dev_priv, - struct intel_rps_client *rps, - unsigned long submitted) - { -+ unsigned long flags; - /* This is intentionally racy! We peek at the state here, then - * validate inside the RPS worker. - */ -@@ -6151,14 +6153,14 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv, - if (rps && time_after(jiffies, submitted + DRM_I915_THROTTLE_JIFFIES)) - rps = NULL; - -- spin_lock(&dev_priv->rps.client_lock); -+ spin_lock_irqsave(&dev_priv->rps.client_lock, flags); - if (rps == NULL || list_empty(&rps->link)) { -- spin_lock_irq(&dev_priv->irq_lock); -+ spin_lock(&dev_priv->irq_lock); - if (dev_priv->rps.interrupts_enabled) { - dev_priv->rps.client_boost = true; - schedule_work(&dev_priv->rps.work); - } -- spin_unlock_irq(&dev_priv->irq_lock); -+ spin_unlock(&dev_priv->irq_lock); - - if (rps != NULL) { - list_add(&rps->link, &dev_priv->rps.clients); -@@ -6166,7 +6168,7 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv, - } else - dev_priv->rps.boosts++; - } -- spin_unlock(&dev_priv->rps.client_lock); -+ spin_unlock_irqrestore(&dev_priv->rps.client_lock, flags); - } - - int intel_set_rps(struct drm_i915_private *dev_priv, u8 val) diff --git a/efi-lockdown.patch b/efi-lockdown.patch index e04878458..4ac65fd5d 100644 --- a/efi-lockdown.patch +++ b/efi-lockdown.patch @@ -1,53 +1,7 @@ -From df7d76ae50f18d4465e59fdf7f19d3df44906cb5 Mon Sep 17 00:00:00 2001 -From: Josh Boyer -Date: Mon, 21 Nov 2016 23:55:55 +0000 -Subject: [PATCH 07/32] efi: Add EFI_SECURE_BOOT bit - -UEFI machines can be booted in Secure Boot mode. Add a EFI_SECURE_BOOT bit -that can be passed to efi_enabled() to find out whether secure boot is -enabled. - -This will be used by the SysRq+x handler, registered by the x86 arch, to find -out whether secure boot mode is enabled so that it can be disabled. - -Signed-off-by: Josh Boyer -Signed-off-by: David Howells ---- - arch/x86/kernel/setup.c | 1 + - include/linux/efi.h | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 69780ed..447905e 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -1182,6 +1182,7 @@ void __init setup_arch(char **cmdline_p) - pr_info("Secure boot disabled\n"); - break; - case efi_secureboot_mode_enabled: -+ set_bit(EFI_SECURE_BOOT, &efi.flags); - pr_info("Secure boot enabled\n"); - break; - default: -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 94d34e0..6049600 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -1069,6 +1069,7 @@ extern int __init efi_setup_pcdp_console(char *); - #define EFI_DBG 8 /* Print additional debug info at runtime */ - #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */ - #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ -+#define EFI_SECURE_BOOT 11 /* Are we in Secure Boot mode? */ - - #ifdef CONFIG_EFI - /* --- -2.7.4 - -From f05a90c19a9613d8d50597319ed91f691e25b689 Mon Sep 17 00:00:00 2001 +From 646ac5c07196bc3680e34188e55c8cc3565f65e7 Mon Sep 17 00:00:00 2001 From: David Howells -Date: Mon, 21 Nov 2016 23:36:17 +0000 -Subject: [PATCH 09/32] Add the ability to lock down access to the running +Date: Wed, 24 May 2017 14:56:00 +0100 +Subject: [PATCH 01/26] Add the ability to lock down access to the running kernel image Provide a single call to allow kernel code to determine whether the system @@ -57,64 +11,70 @@ modules that aren't validly signed with a key we recognise, fiddling with MSR registers and disallowing hibernation, Signed-off-by: David Howells +Acked-by: James Morris --- - include/linux/kernel.h | 9 +++++++++ - include/linux/security.h | 11 +++++++++++ - security/Kconfig | 15 +++++++++++++++ + include/linux/kernel.h | 17 ++++++++++++++ + include/linux/security.h | 8 +++++++ + security/Kconfig | 8 +++++++ security/Makefile | 3 +++ - security/lock_down.c | 40 ++++++++++++++++++++++++++++++++++++++++ - 5 files changed, 78 insertions(+) + security/lock_down.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 96 insertions(+) create mode 100644 security/lock_down.c diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index cb09238..3cd3be9 100644 +index 0ad4c3044cf9..362da2e4bf53 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h -@@ -273,6 +273,15 @@ extern int oops_may_print(void); - void do_exit(long error_code) __noreturn; - void complete_and_exit(struct completion *, long) __noreturn; - +@@ -287,6 +287,23 @@ static inline void refcount_error_report(struct pt_regs *regs, const char *err) + { } + #endif + +#ifdef CONFIG_LOCK_DOWN_KERNEL -+extern bool kernel_is_locked_down(void); ++extern bool __kernel_is_locked_down(const char *what, bool first); +#else -+static inline bool kernel_is_locked_down(void) ++static inline bool __kernel_is_locked_down(const char *what, bool first) +{ + return false; +} +#endif ++ ++#define kernel_is_locked_down(what) \ ++ ({ \ ++ static bool message_given; \ ++ bool locked_down = __kernel_is_locked_down(what, !message_given); \ ++ message_given = true; \ ++ locked_down; \ ++ }) + /* Internal, do not use. */ int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res); int __must_check _kstrtol(const char *s, unsigned int base, long *res); diff --git a/include/linux/security.h b/include/linux/security.h -index d3868f2..187b74b 100644 +index ce6265960d6c..310775476b68 100644 --- a/include/linux/security.h +++ b/include/linux/security.h -@@ -1679,5 +1679,16 @@ static inline void free_secdata(void *secdata) +@@ -1753,5 +1753,13 @@ static inline void free_secdata(void *secdata) { } #endif /* CONFIG_SECURITY */ - + +#ifdef CONFIG_LOCK_DOWN_KERNEL -+extern void lock_kernel_down(void); -+#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT -+extern void lift_kernel_lockdown(void); -+#endif ++extern void __init init_lockdown(void); +#else -+static inline void lock_kernel_down(void) ++static inline void __init init_lockdown(void) +{ +} +#endif + #endif /* ! __LINUX_SECURITY_H */ - + diff --git a/security/Kconfig b/security/Kconfig -index d900f47..d9b391d 100644 +index e8e449444e65..8e01fd59ae7e 100644 --- a/security/Kconfig +++ b/security/Kconfig -@@ -193,6 +193,21 @@ config STATIC_USERMODEHELPER_PATH +@@ -205,6 +205,14 @@ config STATIC_USERMODEHELPER_PATH If you wish for all usermode helper programs to be disabled, specify an empty string here (i.e. ""). - + +config LOCK_DOWN_KERNEL + bool "Allow the kernel to be 'locked down'" + help @@ -122,19 +82,12 @@ index d900f47..d9b391d 100644 + instance if UEFI secure boot is enabled. Locking down the kernel + turns off various features that might otherwise allow access to the + kernel image (eg. setting MSR registers). -+ -+config ALLOW_LOCKDOWN_LIFT -+ bool -+ help -+ Allow the lockdown on a kernel to be lifted, thereby restoring the -+ ability of userspace to access the kernel image (eg. by SysRq+x under -+ x86). + source security/selinux/Kconfig source security/smack/Kconfig source security/tomoyo/Kconfig diff --git a/security/Makefile b/security/Makefile -index f2d71cd..8c4a43e 100644 +index f2d71cdb8e19..8c4a43e3d4e0 100644 --- a/security/Makefile +++ b/security/Makefile @@ -29,3 +29,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o @@ -146,10 +99,10 @@ index f2d71cd..8c4a43e 100644 +obj-$(CONFIG_LOCK_DOWN_KERNEL) += lock_down.o diff --git a/security/lock_down.c b/security/lock_down.c new file mode 100644 -index 0000000..5788c60 +index 000000000000..d8595c0e6673 --- /dev/null +++ b/security/lock_down.c -@@ -0,0 +1,40 @@ +@@ -0,0 +1,60 @@ +/* Lock down the kernel + * + * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. @@ -164,282 +117,110 @@ index 0000000..5788c60 +#include +#include + -+static __read_mostly bool kernel_locked_down; ++static __ro_after_init bool kernel_locked_down; + +/* + * Put the kernel into lock-down mode. + */ -+void lock_kernel_down(void) ++static void __init lock_kernel_down(const char *where) +{ -+ kernel_locked_down = true; ++ if (!kernel_locked_down) { ++ kernel_locked_down = true; ++ pr_notice("Kernel is locked down from %s; see man kernel_lockdown.7\n", ++ where); ++ } +} + -+/* -+ * Take the kernel out of lockdown mode. -+ */ -+void lift_kernel_lockdown(void) ++static int __init lockdown_param(char *ignored) +{ -+ kernel_locked_down = false; ++ lock_kernel_down("command line"); ++ return 0; ++} ++ ++early_param("lockdown", lockdown_param); ++ ++/* ++ * Lock the kernel down from very early in the arch setup. This must happen ++ * prior to things like ACPI being initialised. ++ */ ++void __init init_lockdown(void) ++{ ++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT ++ if (efi_enabled(EFI_SECURE_BOOT)) ++ lock_kernel_down("EFI secure boot"); ++#endif +} + +/** + * kernel_is_locked_down - Find out if the kernel is locked down ++ * @what: Tag to use in notice generated if lockdown is in effect + */ -+bool kernel_is_locked_down(void) ++bool __kernel_is_locked_down(const char *what, bool first) +{ ++ if (what && first && kernel_locked_down) ++ pr_notice("Lockdown: %s is restricted; see man kernel_lockdown.7\n", ++ what); + return kernel_locked_down; +} -+EXPORT_SYMBOL(kernel_is_locked_down); ++EXPORT_SYMBOL(__kernel_is_locked_down); -- -2.7.4 +2.13.6 -From fb6feb38e297260d050fc477c72683ac51d07ae3 Mon Sep 17 00:00:00 2001 -From: David Howells -Date: Mon, 21 Nov 2016 23:55:55 +0000 -Subject: [PATCH 10/32] efi: Lock down the kernel if booted in secure boot mode - -UEFI Secure Boot provides a mechanism for ensuring that the firmware will -only load signed bootloaders and kernels. Certain use cases may also -require that all kernel modules also be signed. Add a configuration option -that to lock down the kernel - which includes requiring validly signed -modules - if the kernel is secure-booted. - -Signed-off-by: David Howells ---- - arch/x86/Kconfig | 12 ++++++++++++ - arch/x86/kernel/setup.c | 8 +++++++- - 2 files changed, 19 insertions(+), 1 deletion(-) - -diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 874c123..a315974 100644 ---- a/arch/x86/Kconfig -+++ b/arch/x86/Kconfig -@@ -1816,6 +1816,18 @@ config EFI_MIXED - - If unsure, say N. - -+config EFI_SECURE_BOOT_LOCK_DOWN -+ def_bool n -+ depends on EFI -+ prompt "Lock down the kernel when UEFI Secure Boot is enabled" -+ ---help--- -+ UEFI Secure Boot provides a mechanism for ensuring that the firmware -+ will only load signed bootloaders and kernels. Certain use cases may -+ also require that all kernel modules also be signed and that -+ userspace is prevented from directly changing the running kernel -+ image. Say Y here to automatically lock down the kernel when a -+ system boots with UEFI Secure Boot enabled. -+ - config SECCOMP - def_bool y - prompt "Enable seccomp to safely compute untrusted bytecode" -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 447905e..d44e60e 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -69,6 +69,7 @@ - #include - #include - #include -+#include - - #include - #include