Linus Torvalds has released this Sunday Linux 4.11. For an overview of the new features provided by this new release, one can read the coverage from LWN: part 1, part 2 and part 3. The KernelNewbies site also has a detailed summary of the new features.
With 137 patches contributed, Bootlin is the 18th contributing company according to the Kernel Patch Statistics. Bootlin engineer Maxime Ripard appears in the list of top contributors by changed lines in the LWN statistics.
Our most important contributions to this release have been:
- Support for Atmel platforms
- Alexandre Belloni improved suspend/resume support for the Atmel watchdog driver, I2C controller driver and UART controller driver. This is part of a larger effort to upstream support for the backup mode of the Atmel SAMA5D2 SoC.
- Alexandre Belloni also improved the at91-poweroff driver to properly shutdown LPDDR memories.
- Boris Brezillon contributed a fix for the Atmel HLCDC display controller driver, as well as fixes for the atmel-ebi driver.
- Support for Allwinner platforms
- Boris Brezillon contributed a number of improvements to the sunxi-nand driver.
- Mylène Josserand contributed a new driver for the digital audio codec on the Allwinner sun8i SoC, as well a the corresponding Device Tree changes and related fixes. Thanks to this driver, Mylène enabled audio support on the R16 Parrot and A33 Sinlinx boards.
- Maxime Ripard contributed numerous improvements to the sunxi-mmc MMC controller driver, to support higher data rates, especially for the Allwinner A64.
- Maxime Ripard contributed official Device Tree bindings for the ARM Mali GPU, which allows the GPU to be described in the Device Tree of the upstream kernel, even if the ARM kernel driver for the Mali will never be merged upstream.
- Maxime Ripard contributed a number of fixes for the rtc-sun6i driver.
- Maxime Ripard enabled display support on the A33 Sinlinx board, by contributing a panel driver and the necessary Device Tree changes.
- Maxime Ripard continued his clean-up effort, by converting the GR8 and sun5i clock drivers to the sunxi-ng clock infrastructure, and converting the sun5i pinctrl driver to the new model.
- Quentin Schulz added a power supply driver for the AXP20X and AXP22X PMICs used on numerous Allwinner platforms, as well as numerous Device Tree changes to enable it on the R16 Parrot and A33 Sinlinx boards.
- Support for Marvell platforms
- Grégory Clement added support for the RTC found in the Marvell Armada 7K and 8K SoCs.
- Grégory Clement added support for the Marvell 88E6141 and 88E6341 Ethernet switches, which are used in the Armada 3700 based EspressoBin development board.
- Romain Perier enabled the I2C controller, SPI controller and Ethernet switch on the EspressoBin, by contributing Device Tree changes.
- Thomas Petazzoni contributed a number of fixes to the OMAP hwrng driver, which turns out to also be used on the Marvell 7K/8K platforms for their HW random number generator.
- Thomas Petazzoni contributed a number of patches for the mvpp2 Ethernet controller driver, preparing the future addition of PPv2.2 support to the driver. The mvpp2 driver currently only supports PPv2.1, the Ethernet controller used on the Marvell Armada 375, and we are working on extending it to support PPv2.2, the Ethernet controller used on the Marvell Armada 7K/8K. PPv2.2 support is scheduled to be merged in 4.12.
- Support for RaspberryPi platforms
- Boris Brezillon contributed Device Tree changes to enable the VEC (Video Encoder) on all bcm283x platforms. Boris had previously contributed the driver for the VEC.
In addition to our direct contributions, a number of Bootlin engineers are also maintainers of various subsystems in the Linux kernel. As part of this maintenance role:
- Maxime Ripard, co-maintainer of the Allwinner ARM platform, reviewed and merged 85 patches from contributors
- Alexandre Belloni, maintainer of the RTC subsystem and co-maintainer of the Atmel ARM platform, reviewed and merged 60 patches from contributors
- Grégory Clement, co-maintainer of the Marvell ARM platform, reviewed and merged 42 patches from contributors
- Boris Brezillon, maintainer of the MTD NAND subsystem, reviewed and merged 8 patches from contributors
Here is the detailed list of contributions, commit per commit:
- Alexandre Belloni (15)
- watchdog: sama5d4: Implement resume hook
- watchdog: sama5d4: Cache MR instead of a partial config
- i2c: at91: ensure state is restored after suspending
- ASoC: fsl_sai: support more than 2 channels
- tty/serial: atmel: ensure state is restored after suspending
- rtc: sun6i: extend test coverage
- ARM: dts: at91: Enable DMA on sama5d2_xplained console
- ARM: dts: at91: Enable DMA on sama5d4_xplained console
- power: reset: at91-reset: remove leftover platform_device_id
- power: reset: at91-poweroff: timely shutdown LPDDR memories
- ARM: at91: define LPDDR types
- ARM: at91: pm: remove useless extern definition
- ARM: dts: imx/vf: Correct license text
- ARM: dts: mvebu: Correct license text
- ARM64: dts: marvell: Correct license text
- Boris Brezillon (13)
- mtd: nand: sunxi: Improve sunxi_nfc_cmd_ctrl()
- mtd: nand: sunxi: Stop using polling mode when waiting for long operations
- mtd: nand: sunxi: Fix the non-polling case in sunxi_nfc_wait_events()
- gpio: Add the devm_fwnode_get_index_gpiod_from_child() helper
- gpio: Rename devm_get_gpiod_from_child()
- dmaengine: Provide a wrapper for memcpy operations
- drm/atmel-hlcdc: Rework the fbdev creation logic
- memory: atmel-ebi: Enable the SMC clock if specified
- memory: atmel-ebi: Properly handle multiple reference to the same CS
- memory: atmel-ebi: Fix the test to enable generic SMC logic
- ARM: dts: bcm283x: Enable the VEC IP on all RaspberryPi boards
- ARM: dts: bcm283x: Add VEC node in bcm283x.dtsi
- memory/atmel-ebi: Fix ns <-> cycles conversions
- Gregory Clement (5)
- Mylene Josserand (15)
- ARM: dts: sun8i: Update audio-routing with renamed widgets
- ASoC: sun8i-codec: Convert to use SND_SOC_DAPM_AIF_IN
- ASoC: sun8i-codec: Fix space on audio-routing widget
- ASoC: sun8i-codec: Update mixer to use SOC_DAPM_DOUBLE
- ASoC: sun8i-codec: Remove analog “HP” widget
- ASoC: sun4i-i2s: Update binding documentation to include A31
- ARM: dts: sun8i: sinlinx: Enable audio nodes
- ARM: dts: sun8i: parrot: Enable audio nodes
- ARM: dts: sun8i: Add audio codec, dai and card for A33
- ASoC: sun4i-i2s: Add quirks to handle a31 compatible
- ASoC: codecs: Add sun8i-a33 binding documentation
- ASoC: Add sun8i digital audio codec
- ASoC: sun8i-codec-analog: Add amplifier event to fix first delay
- ASoC: sun4i-i2s: Increase DMA max burst to 8
- clk: sunxi-ng: a33: Add CLK_SET_RATE_PARENT to ac-dig
- Romain Perier (7)
- net: dsa: mv88e6xxx: Don’t forbid MDIO I/Os for PHY addr >= num_of_ports
- arm64: dts: marvell: Add I2C definitions for the Armada 3700
- arm64: dts: marvell: Enable spi0 on the board Armada-3720-db
- arm64: dts: marvell: Add definition of SPI controller for Armada 3700
- arm64: dts: marvell: Add ethernet switch definition for the ESPRESSObin
- spi: armada-3700: Coding style fixes
- spi: armada-3700: Replaced raw values for nbits by the SPI macros
- Thomas Petazzoni (23)
- dt-bindings: rng: clocks property on omap_rng not always mandatory
- hwrng: omap – Do not access INTMASK_REG on EIP76
- hwrng: omap – use devm_clk_get() instead of of_clk_get()
- hwrng: omap – write registers after enabling the clock
- dt-bindings: arm: update Armada CP110 system controller binding
- net: mvpp2: enable building on 64-bit platforms
- net: mvpp2: switch to build_skb() in the RX path
- net: mvpp2: simplify MVPP2_PRS_RI_* definitions
- net: mvpp2: fix indentation of MVPP2_EXT_GLOBAL_CTRL_DEFAULT
- net: mvpp2: remove unused register definitions
- net: mvpp2: simplify mvpp2_bm_bufs_add()
- net: mvpp2: drop useless fields in mvpp2_bm_pool and related code
- net: mvpp2: remove unused ‘tx_skb’ field of ‘struct mvpp2_tx_queue’
- net: mvpp2: release reference to txq_cpu[] entry after unmapping
- net: mvpp2: handle too large value in mvpp2_rx_time_coal_set()
- net: mvpp2: handle too large value handling in mvpp2_rx_pkts_coal_set()
- net: mvpp2: remove useless arguments in mvpp2_rx_{pkts, time}_coal_set
- net: mvpp2: fix DMA address calculation in mvpp2_txq_inc_put()
- clk: mvebu: adjust clock handling for the CP110 system controller
- dt-bindings: net: remove reference to fixed link support
- arm64: dts: marvell: adjust name of sd-mmc-gop clock in syscon
- clk: mvebu: adjust AP806 CPU clock frequencies to production chip
- arm64: defconfig: enable XORv2 for Marvell Armada 7K/8K
- Maxime Ripard (40)
- ARM: sun8i: Fix the mali clock rate
- dt-bindings: mmc: sunxi: Document A64 eMMC compatible
- mmc: sunxi: Add more debug informations
- mmc: sunxi: Add EMMC (MMC2) controller compatible
- mmc: sunxi: Mask DATA0 when updating the clock
- mmc: sunxi: Enable the new timings for the A64 MMC controllers
- mmc: sunxi: Always set signal delay to 0 for A64
- mmc: sunxi: Gate the clock when rate is 0
- mmc: sunxi: Fix clock frequency change sequence
- ARM: sun8i: dt: Add mali node
- dt-bindings: gpu: Add Mali Utgard bindings
- rtc: sun6i: Switch to devm_rtc_device_register
- rtc: sun6i: Expose the 32kHz oscillator
- rtc: sun6i: Switch to the external oscillator
- rtc: sun6i: Add some locking
- arm64: allwinner: a64: Increase the MMC max frequency
- arm64: allwinner: a64: Add MMC pinctrl nodes
- ARM: sun8i: sina33: Enable display
- ARM: sun8i: a23/a33: Add the oscillators accuracy
- ARM: sun8i: a23/a33: Enable the real LOSC and use it
- clk: sunxi-ng: a33: Set CLK_SET_RATE_PARENT for the GPU
- clk: sunxi-ng: Call divider_round_rate if we only have a single parent
- drm/panel: simple: Add Netron DY E231732
- of: Add vendor prefix for Netron DY
- rtc: sun6i: Disable the build as a module
- ARM: gr8: Convert to CCU
- ARM: sun5i: Convert to CCU
- clk: sunxi-ng: Add sun5i CCU driver
- clk: sunxi-ng: Implement global pre-divider
- clk: sunxi-ng: Implement multiplier maximum
- clk: sunxi-ng: mult: Fix minimum in round rate
- clk: sunxi-ng: Implement factors offsets
- clk: sunxi-ng: multiplier: Add fractional support
- Input: tca8418 – use the interrupt trigger from the device tree
- pinctrl: sunxi: Remove old sun5i pinctrl drivers
- pinctrl: sunxi: Add common sun5i pinctrl driver
- pinctrl: sunxi: Add pinctrl variants
- ARM: sunxi: Convert pinctrl nodes to generic bindings
- ARM: sunxi: Remove useless allwinner,pull property
- ARM: sunxi: Remove useless allwinner,drive property
- Quentin Schulz (19)
- iio: bmg160: reset chip when probing
- ARM: sun8i: a33: add operating-points-v2 property to all nodes
- ARM: sun8i: a33: remove highest OPP to fix CPU crashes
- mfd: Kconfig: MFD_SUN4I_GPADC depends on !TOUCHSCREN_SUN4I_GPADC
- mfd: axp20x: Add separate MFD cell for AXP223
- power: supply: add AC power supply driver for AXP20X and AXP22X PMICs
- dt-bindings: power: supply: add AXP20X/AXP22X AC power supply
- power: supply: axp20x_usb_power: use IIO channels when available
- ARM: dts: sun8i: reference-design: use AXP223 DTSI
- ARM: dts: sun8i: parrot: use AXP223 DTSI
- ARM: dts: sun8i: sina33: use AXP223 DTSI
- ARM: dts: sun8i: a33-olinuxino: use AXP223 DTSI
- ARM: dts: add DTSI for AXP223
- dt-bindings: power: axp20x-usb: add axp223 compatible
- power: supply: axp20x_usb_power: add 100mA max current limit for AXP223
- dt-bindings: power: supply: axp20x_usb_power: add axp223 compatible
- power: supply: axp20x_usb_power: set min voltage and max current from sysfs
- power: supply: axp20x_usb_power: use of_device_id data field instead of device_is_compatible
- ARM: sunxi: Add CONFIG_THERMAL_OF