Loading Documentation/arm/kernel_mode_neon.txt +2 −2 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ TL;DR summary * Use only NEON instructions, or VFP instructions that don't rely on support code * Isolate your NEON code in a separate compilation unit, and compile it with '-mfpu=neon -mfloat-abi=softfp' '-march=armv7-a -mfpu=neon -mfloat-abi=softfp' * Put kernel_neon_begin() and kernel_neon_end() calls around the calls into your NEON code * Don't sleep in your NEON code, and be aware that it will be executed with Loading Loading @@ -87,7 +87,7 @@ instructions appearing in unexpected places if no special care is taken. Therefore, the recommended and only supported way of using NEON/VFP in the kernel is by adhering to the following rules: * isolate the NEON code in a separate compilation unit and compile it with '-mfpu=neon -mfloat-abi=softfp'; '-march=armv7-a -mfpu=neon -mfloat-abi=softfp'; * issue the calls to kernel_neon_begin(), kernel_neon_end() as well as the calls into the unit containing the NEON code from a compilation unit which is *not* built with the GCC flag '-mfpu=neon' set. Loading Makefile +6 −3 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 SUBLEVEL = 33 SUBLEVEL = 34 EXTRAVERSION = NAME = "People's Front" Loading Loading @@ -627,12 +627,15 @@ ifeq ($(may-sync-config),1) -include include/config/auto.conf.cmd # To avoid any implicit rule to kick in, define an empty command $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ; $(KCONFIG_CONFIG): ; # The actual configuration files used during the build are stored in # include/generated/ and include/config/. Update them if .config is newer than # include/config/auto.conf (which mirrors .config). include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd # # This exploits the 'multi-target pattern rule' trick. # The syncconfig should be executed only once to make all the targets. %/auto.conf %/auto.conf.cmd %/tristate.conf: $(KCONFIG_CONFIG) $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig else # External modules and some install targets need include/generated/autoconf.h Loading arch/arm/boot/dts/lpc32xx.dtsi +9 −9 Original line number Diff line number Diff line Loading @@ -230,7 +230,7 @@ status = "disabled"; }; i2s1: i2s@2009C000 { i2s1: i2s@2009c000 { compatible = "nxp,lpc3220-i2s"; reg = <0x2009C000 0x1000>; }; Loading Loading @@ -273,7 +273,7 @@ status = "disabled"; }; i2c1: i2c@400A0000 { i2c1: i2c@400a0000 { compatible = "nxp,pnx-i2c"; reg = <0x400A0000 0x100>; interrupt-parent = <&sic1>; Loading @@ -284,7 +284,7 @@ clocks = <&clk LPC32XX_CLK_I2C1>; }; i2c2: i2c@400A8000 { i2c2: i2c@400a8000 { compatible = "nxp,pnx-i2c"; reg = <0x400A8000 0x100>; interrupt-parent = <&sic1>; Loading @@ -295,7 +295,7 @@ clocks = <&clk LPC32XX_CLK_I2C2>; }; mpwm: mpwm@400E8000 { mpwm: mpwm@400e8000 { compatible = "nxp,lpc3220-motor-pwm"; reg = <0x400E8000 0x78>; status = "disabled"; Loading Loading @@ -394,7 +394,7 @@ #gpio-cells = <3>; /* bank, pin, flags */ }; timer4: timer@4002C000 { timer4: timer@4002c000 { compatible = "nxp,lpc3220-timer"; reg = <0x4002C000 0x1000>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>; Loading @@ -412,7 +412,7 @@ status = "disabled"; }; watchdog: watchdog@4003C000 { watchdog: watchdog@4003c000 { compatible = "nxp,pnx4008-wdt"; reg = <0x4003C000 0x1000>; clocks = <&clk LPC32XX_CLK_WDOG>; Loading Loading @@ -451,7 +451,7 @@ status = "disabled"; }; timer1: timer@4004C000 { timer1: timer@4004c000 { compatible = "nxp,lpc3220-timer"; reg = <0x4004C000 0x1000>; interrupts = <17 IRQ_TYPE_LEVEL_LOW>; Loading @@ -475,7 +475,7 @@ status = "disabled"; }; pwm1: pwm@4005C000 { pwm1: pwm@4005c000 { compatible = "nxp,lpc3220-pwm"; reg = <0x4005C000 0x4>; clocks = <&clk LPC32XX_CLK_PWM1>; Loading @@ -484,7 +484,7 @@ status = "disabled"; }; pwm2: pwm@4005C004 { pwm2: pwm@4005c004 { compatible = "nxp,lpc3220-pwm"; reg = <0x4005C004 0x4>; clocks = <&clk LPC32XX_CLK_PWM2>; Loading arch/arm/boot/dts/meson8b.dtsi +3 −3 Original line number Diff line number Diff line Loading @@ -207,9 +207,7 @@ groups = "eth_tx_clk", "eth_tx_en", "eth_txd1_0", "eth_txd1_1", "eth_txd0_0", "eth_txd0_1", "eth_rx_clk", "eth_rx_dv", "eth_rxd1", Loading @@ -218,7 +216,9 @@ "eth_mdc", "eth_ref_clk", "eth_txd2", "eth_txd3"; "eth_txd3", "eth_rxd3", "eth_rxd2"; function = "ethernet"; }; }; Loading arch/arm/include/asm/barrier.h +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ #define sev() __asm__ __volatile__ ("sev" : : : "memory") #define wfe() __asm__ __volatile__ ("wfe" : : : "memory") #define wfi() __asm__ __volatile__ ("wfi" : : : "memory") #else #define wfe() do { } while (0) #endif #if __LINUX_ARM_ARCH__ >= 7 Loading Loading
Documentation/arm/kernel_mode_neon.txt +2 −2 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ TL;DR summary * Use only NEON instructions, or VFP instructions that don't rely on support code * Isolate your NEON code in a separate compilation unit, and compile it with '-mfpu=neon -mfloat-abi=softfp' '-march=armv7-a -mfpu=neon -mfloat-abi=softfp' * Put kernel_neon_begin() and kernel_neon_end() calls around the calls into your NEON code * Don't sleep in your NEON code, and be aware that it will be executed with Loading Loading @@ -87,7 +87,7 @@ instructions appearing in unexpected places if no special care is taken. Therefore, the recommended and only supported way of using NEON/VFP in the kernel is by adhering to the following rules: * isolate the NEON code in a separate compilation unit and compile it with '-mfpu=neon -mfloat-abi=softfp'; '-march=armv7-a -mfpu=neon -mfloat-abi=softfp'; * issue the calls to kernel_neon_begin(), kernel_neon_end() as well as the calls into the unit containing the NEON code from a compilation unit which is *not* built with the GCC flag '-mfpu=neon' set. Loading
Makefile +6 −3 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 SUBLEVEL = 33 SUBLEVEL = 34 EXTRAVERSION = NAME = "People's Front" Loading Loading @@ -627,12 +627,15 @@ ifeq ($(may-sync-config),1) -include include/config/auto.conf.cmd # To avoid any implicit rule to kick in, define an empty command $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ; $(KCONFIG_CONFIG): ; # The actual configuration files used during the build are stored in # include/generated/ and include/config/. Update them if .config is newer than # include/config/auto.conf (which mirrors .config). include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd # # This exploits the 'multi-target pattern rule' trick. # The syncconfig should be executed only once to make all the targets. %/auto.conf %/auto.conf.cmd %/tristate.conf: $(KCONFIG_CONFIG) $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig else # External modules and some install targets need include/generated/autoconf.h Loading
arch/arm/boot/dts/lpc32xx.dtsi +9 −9 Original line number Diff line number Diff line Loading @@ -230,7 +230,7 @@ status = "disabled"; }; i2s1: i2s@2009C000 { i2s1: i2s@2009c000 { compatible = "nxp,lpc3220-i2s"; reg = <0x2009C000 0x1000>; }; Loading Loading @@ -273,7 +273,7 @@ status = "disabled"; }; i2c1: i2c@400A0000 { i2c1: i2c@400a0000 { compatible = "nxp,pnx-i2c"; reg = <0x400A0000 0x100>; interrupt-parent = <&sic1>; Loading @@ -284,7 +284,7 @@ clocks = <&clk LPC32XX_CLK_I2C1>; }; i2c2: i2c@400A8000 { i2c2: i2c@400a8000 { compatible = "nxp,pnx-i2c"; reg = <0x400A8000 0x100>; interrupt-parent = <&sic1>; Loading @@ -295,7 +295,7 @@ clocks = <&clk LPC32XX_CLK_I2C2>; }; mpwm: mpwm@400E8000 { mpwm: mpwm@400e8000 { compatible = "nxp,lpc3220-motor-pwm"; reg = <0x400E8000 0x78>; status = "disabled"; Loading Loading @@ -394,7 +394,7 @@ #gpio-cells = <3>; /* bank, pin, flags */ }; timer4: timer@4002C000 { timer4: timer@4002c000 { compatible = "nxp,lpc3220-timer"; reg = <0x4002C000 0x1000>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>; Loading @@ -412,7 +412,7 @@ status = "disabled"; }; watchdog: watchdog@4003C000 { watchdog: watchdog@4003c000 { compatible = "nxp,pnx4008-wdt"; reg = <0x4003C000 0x1000>; clocks = <&clk LPC32XX_CLK_WDOG>; Loading Loading @@ -451,7 +451,7 @@ status = "disabled"; }; timer1: timer@4004C000 { timer1: timer@4004c000 { compatible = "nxp,lpc3220-timer"; reg = <0x4004C000 0x1000>; interrupts = <17 IRQ_TYPE_LEVEL_LOW>; Loading @@ -475,7 +475,7 @@ status = "disabled"; }; pwm1: pwm@4005C000 { pwm1: pwm@4005c000 { compatible = "nxp,lpc3220-pwm"; reg = <0x4005C000 0x4>; clocks = <&clk LPC32XX_CLK_PWM1>; Loading @@ -484,7 +484,7 @@ status = "disabled"; }; pwm2: pwm@4005C004 { pwm2: pwm@4005c004 { compatible = "nxp,lpc3220-pwm"; reg = <0x4005C004 0x4>; clocks = <&clk LPC32XX_CLK_PWM2>; Loading
arch/arm/boot/dts/meson8b.dtsi +3 −3 Original line number Diff line number Diff line Loading @@ -207,9 +207,7 @@ groups = "eth_tx_clk", "eth_tx_en", "eth_txd1_0", "eth_txd1_1", "eth_txd0_0", "eth_txd0_1", "eth_rx_clk", "eth_rx_dv", "eth_rxd1", Loading @@ -218,7 +216,9 @@ "eth_mdc", "eth_ref_clk", "eth_txd2", "eth_txd3"; "eth_txd3", "eth_rxd3", "eth_rxd2"; function = "ethernet"; }; }; Loading
arch/arm/include/asm/barrier.h +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ #define sev() __asm__ __volatile__ ("sev" : : : "memory") #define wfe() __asm__ __volatile__ ("wfe" : : : "memory") #define wfi() __asm__ __volatile__ ("wfi" : : : "memory") #else #define wfe() do { } while (0) #endif #if __LINUX_ARM_ARCH__ >= 7 Loading