The 4.6 version of the Linux kernel was released last Sunday by Linus Torvalds. As usual, LWN.net had a very nice coverage of this development cycle merge window, highlighting the most significant changes and improvements: part 1, part 2 and part 3. KernelNewbies is now active again, and has a very detailed page about this release.
On a total of 13517 non-merge commits, Bootlin contributed for this release a total of 107 non-merge commits, a number slightly lower than our past contributions for previous kernel releases. That being said, there are still a few interesting contributions in those 107 patches. We are particular happy to see patches from all our eight engineers in this release, including from Mylène Josserand and Romain Perier, who just joined us mid-March! We also already have 194 patches lined-up for the next 4.7 release.
Here are the highlights of our contributions to the 4.6 release:
- Atmel ARM processors support
- Alexandre Belloni and Boris Brezillon contributed a number of patches to improve and cleanup the support for the PMC (Power Management and Clocks) hardware block. As expected, this involved patching both clock drivers and power management code for the Atmel platforms.
- Annapurna Labs Alpine platforms support
- As a newly appointed maintainer of the Annapurna Labs ARM/ARM64 Alpine platforms, Antoine Ténart contributed the base support for the ARM64 Alpine v2 platform: base platform support and Device Tree, and an interrupt controller driver to support MSI-X
- Marvell ARM processors support
- Grégory Clement added initial support for the Armada 3700, a new Cortex-A53 based ARM64 SoC from Marvell, as well as a first development board using this SoC. So far, the supported features are: UART, USB and SATA (as well as of course timers and interrupts).
- Thomas Petazzoni added initial support for the Armada 7K/8K, a new Cortex-A72 based ARM64 SoC from Marvell, as well as a first development board using this SoC. So far, UART, I2C, SPI are supported. However, due to the lack of clock drivers, this initial support can’t be booted yet, the clock drivers and additional support is on its way to 4.7.
- Thomas Petazzoni contributed an interrupt controller driver for the ODMI interrupt controller found in the Armada 7K/8K SoC.
- Grégory Clement and Thomas Petazzoni did a few improvements to the support of Armada 38x. Thomas added support for the NAND flash used on Armada 370 DB and Armada XP DB.
- Boris Brezillon contributed a number of fixes to the Marvell CESA driver, which is used to control the cryptographic engine found in most Marvell EBU processors.
- Thomas Petazzoni contributed improvements to the
irq-armada-370-xp
interrupt controller driver, to use the new generic MSI infrastructure.
- Allwinner ARM processors support
- Maxime Ripard contributed a few improvements to Allwinner clock drivers, and a few other fixes.
- MTD and NAND flash subsystem
- As a maintainer of the NAND subsystem, Boris Brezillon did a number of contributions in this area. Most notably, he added support for the randomizer feature to the Allwinner NAND driver as well as related core NAND subsystem changes. This change is needed to support MLC NANDs on Allwinner platforms. He also contributed several patches to continue clean up and improve the NAND subsystem.
- Thomas Petazzoni fixed an issue in the
pxa3xx_nand
driver used on Marvell EBU platforms that prevented using some of the ECC configurations (such as 8 bits BCH ECC on 4 KB pages). He also contributed minor improvements to the generic NAND code.
- Networking subsystem
- Grégory Clement contributed an extension to the core networking subsystem that allows to take advantage of hardware capable of doing HW-controlled buffer management. This new extension is used by the mvneta network driver, useful for several Marvell EBU platforms. We expect to extend this mechanism further in the future, in order to take advantage of additional hardware capabilities.
- RTC subsystem
- As a maintainer of the RTC subsystem, Alexandre Belloni did a number of fixes and improvements in various RTC drivers.
- Mylène Josserand contributed a few improvements to the
abx80x
RTC driver.
- Altera NIOSII support
- Romain Perier contributed two patches to fix issues in the kernel running on the Altera NIOSII architecture. The first one, covered in a previous blog post, fixed the NIOSII-specific
memset()
implementation. The other patch fixes a problem in the generic futex code.
- Romain Perier contributed two patches to fix issues in the kernel running on the Altera NIOSII architecture. The first one, covered in a previous blog post, fixed the NIOSII-specific
In addition, several our of engineers are maintainers of various platforms or subsystems, so they do a lot of work reviewing and merging the contributions from other kernel developers. This effort can be measured by looking at the number of patches on which they Signed-off-by, but for which they are not the author. Here are the number of patches that our engineered Signed-off-by
, but for which they were not the author:
- Alexandre Belloni, as the RTC subsystem maintainer and the Atmel ARM co-maintainer: 91 patches
- Maxime Ripard, as the Allwinner ARM co-maintainer: 65 patches
- Grégory Clement, as the Marvell EBU ARM co-maintainer: 45 patches
- Thomas Petazzoni, simply resubmitting patches from others: 2 patches
Here is the detailed list of our contributions to the 4.6 kernel release:
- Alexandre Belloni
- rtc: rv8803: workaround i2c HW issue
- rtc: rv3029: stop mentioning rv3029c2
- rtc: pxa: fix Kconfig indentation
- rtc: enable COMPILE_TEST
- rtc: pcf8523: properly handle oscillator stop bit
- rtc: pcf85063: remove struct pcf85063
- rtc: pcf85063: remove useless DRV_VERSION
- rtc: always show I2C
- rtc: pcf85063: remove useless century handling
- rtc: rv3029: reword Kconfig option
- clk: at91: remove useless includes
- clk: at91: pmc: remove useless capacities handling
- clk: at91: pmc: drop at91_pmc_base
- usb: gadget: atmel: access the PMC using regmap
- ARM: at91: remove useless includes and function prototypes
- ARM: at91: pm: move idle functions to pm.c
- ARM: at91: pm: find and remap the pmc
- ARM: at91: pm: simply call at91_pm_init
- clk: at91: pmc: move pmc structures to C file
- clk: at91: pmc: merge at91_pmc_init in atmel_pmc_probe
- clk: at91: remove IRQ handling and use polling
- rtc: rx8025: remove rv8803 id
- Antoine Tenart
- Documentation/bindings: Document the Alpine MSIX driver
- irqchip: Add the Alpine MSIX interrupt controller
- irqchip/gic-v3: Always return IRQ_SET_MASK_OK_DONE in gic_set_affinity
- arm64: dts: alpine: add the MSIX node in the Alpine v2 dtsi
- arm64: dts: add the Alpine v2 EVP
- ARM: dts: alpine: add the MSIX node
- ARM: alpine: select the Alpine MSI controller driver
- arm64: alpine: select the Alpine MSI controller driver
- arm64: defconfig: enable the Alpine family
- arm64: add Alpine SoC family
- Boris Brezillon
- ARM: dts: at91: sam9x5: Fix the memory range assigned to the PMC
- crypto: marvell/cesa – forward devm_ioremap_resource() error code
- crypto: marvell/cesa – initialize hash states
- crypto: marvell/cesa – fix memory leak
- mtd: nand: simplify nand_bch_init() usage
- mtd: mtdswap: remove useless if (!mtd->ecclayout) test
- mtd: create an mtd_oobavail() helper and make use of it
- mtd: kill the ecclayout->oobavail field
- mtd: nand: sunxi: remove direct mtd->priv accesses
- clk: at91: make use of syscon/regmap internally
- clk: at91: make use of syscon to share PMC registers in several drivers
- mtd: nand: vf610: remove useless mtd->ecclayout assignment
- mtd: nand: lpc32xx_mlc: fix ecc.size
- staging: mt29f_spinand: kill unused ecclayout field
- mtd: nand: kill unused ->ecclayout field in platform_nand_chip struct
- mtd: nand: jz4740: kill the ->ecc_layout field
- mtd: nand: s3c2410: kill the ->ecc_layout field
- mtd: nftl: kill unused oobinfo field
- mtd: inftl: kill unused oobinfo field
- mtd: nand: sunxi: add randomizer support
- mtd: nand: add NAND_NEED_SCRAMBLING flag to the H27UCG8T2ATR-BC definition
- mtd: nand: add NAND_NEED_SCRAMBLING option flag
- Gregory Clement
- net: mvneta: Fix spinlock usage
- net: mvneta: Use the new hwbm framework
- net: add a hardware buffer management helper API
- ARM: dts: armada-xp-openblocks-ax3-4: Add BM support
- arm64: defconfig: enable Armada 3700 related config
- Documentation: arm: update supported Marvell EBU processors
- MAINTAINERS: Extend dts entry for ARM64 mvebu files
- arm64: add mvebu architecture entry
- arm64: dts: add the Marvell Armada 3700 family and a development board
- devicetree: bindings: add DT binding for the Marvell Armada 3700 SoC family
- Documentation: dt: Tidy up the Marvell related files
- Documentation: dt-bindings: Add a new compatible for the Armada 3700
- irqchip/armada-370-xp: Do not enable it by default when ARCH_MVEBU is selected
- ARM: dts: armada-370: Update the mpp63 function in the device tree on Armada 370
- ARM: dts: armada-38x: use usb-nop-xceiv PHY for the xhci nodes on Armada 388 GP
- ARM: mvebu: Add USB nop xceiv support in mvebu_v7_defconfig
- Mylene Josserand
- Romain Perier
- Thomas Petazzoni
- dt-bindings: interrupt-controller: Add SoC-specific compatible string to Marvell ODMI
- arm64: dts: marvell: re-order Device Tree nodes for Armada AP806
- arm64: dts: marvell: update Armada AP806 clock description
- arm64: dts: marvell: add Device Tree files for Armada 7K/8K
- irqchip/mvebu-odmi: Add new driver for platform MSI on Marvell 7K/8K
- arm64: update ARCH_MVEBU for Marvell Armada 7K/8K support
- Documentation: arm: add Marvell Armada 7K and 8K families
- Documentation: arm: add link to Armada 38x Functional Spec
- Documentation: arm: improve Armada 37xx description
- ARM: mvebu: Use the ARMADA_370_XP_IRQ option
- irqchip/armada-370-xp: Allow allocation of multiple MSIs
- irqchip/armada-370-xp: Use shorter names for irq_chip
- irqchip/armada-370-xp: Use PCI_MSI_DOORBELL_START where appropriate
- irqchip/armada-370-xp: Use the generic MSI infrastructure
- irqchip/armada-370-xp: Add Kconfig option for the driver
- mtd: nand: pxa3xx_nand: add support for partial chunks
- ARM: dts: mvebu: add NAND description to Armada 370 DB and Armada XP DB
- ARM: dts: armada-38x: add reference to ETH connectors for A385-AP
- ARM: dts: armada-38x: change order of ethernet DT nodes on Armada 38x
- ARM: dts: armada-38x: use regulator-boot-on for SATA regulators on Armada 388 GP
- ARM: dts: armada-38x: adjust board name and compatible for Armada 388 GP
- mtd: onenand: unexport onenand_default_bbt()
- mtd: onenand: make onenand_scan_bbt() static
- mtd: nand: remove EXPORT_SYMBOL of nand_scan_bbt()
- Maxime Ripard
- regulator: axp20x: Fix LDO4 linear voltage range
- clk: sunxi: Remove clk_register_clkdev calls
- clk: sunxi: Remove old probe and protection code
- clk: sunxi: convert current clocks registration to CLK_OF_DECLARE
- clk: sunxi: Make clocks setup functions take const pointer
- clk: sunxi: Make clocks setup functions return their clock
- reset: Move DT cell size check to the core
- reset: Make reset_control_ops const
- ARM: sun5i: chip: Add CPU regulator for cpufreq