Linux 4.4 has been released, a week later than the normal schedule in order to allow kernel developers to recover from the Christmas/New Year period. As usual, LWN has covered the 4.4 cycle merge window, in two articles: part 1 and part 2. This time around, KernelNewbies has a nice overview of the Linux 4.4 changes. With 112 patches merged, we are the 20th contributing company by number of patches according to the statistics.
Besides our contributions in terms of patches, some of our engineers have also become over time maintainers of specific areas of the Linux kernel. Recently, LWN.net conducted a study of how the patches merged in 4.4 went into the kernel, which shows the chain of maintainers who pushed the patches up to Linus Torvalds. Bootlin engineers had the following role in this chain of maintainers:
- As a co-maintainer of the Allwinner (sunxi) ARM support, Maxime Ripard has submitted a pull request with one patch to the clock maintainers, and pull requests with a total of 124 patches to the ARM SoC maintainers.
- As a maintainer of the RTC subsystem, Alexandre Belloni has submitted pull requests with 30 patches directly to Linus Torvalds.
- As a co-maintainer of the AT91 ARM support, Alexandre Belloni has submitted pull requests with 46 patches to the ARM SoC maintainers.
- As a co-maintainer of the Marvell EBU ARM support, Gregory Clement has submitted pull requests with a total of 33 patches to the ARM SoC maintainers.
Our contributions for the 4.4 kernel were centered around the following topics:
- Alexandre Belloni continued some general improvements to support for the AT91 ARM processors, with fixes and cleanups in the
at91-reset
,at91-poweroff
,at91_udc
,atmel-st
,at91_can
drivers and some clock driver improvements. - Alexandre Belloni also wrote a driver for the RV8803 RTC from Microcrystal.
- Antoine Ténart added PWM support for the Marvell Berlin platform and enabled the use of cpufreq on this platform.
- Antoine Ténart did some improvements in the
pxa3xx_nand
driver, still in preparation to the addition of support for the Marvell Berlin NAND controller. - Boris Brezillon did a number of improvements to the
sunxi_nand
driver, used for the NAND controller found on the Allwinner SoCs. Boris also merged a few patches doing cleanups and improvements to the MTD subsystem itself. - Boris Brezillon enabled the cryptographic accelerator on more Marvell EBU platforms by submitting the corresponding Device Tree descriptions, and he also fixed a few bugs found in the driver
- Maxime Ripard reworked the interrupt handling of per-CPU interrupts on Marvell EBU platforms especially in the
mvneta
network driver. This was done in preparation to enable RSS support in themvneta
driver. - Maxime Ripard added support for the Allwinner R8 and the popular C.H.I.P platform.
- Maxime Ripard enabled audio support on a number of Allwinner platforms, by adding the necessary clock code and Device Tree descriptions, and also several fixes/improvements to the ALSA driver.
The details of our contributions for 4.4:
- Alexandre Belloni (22):
- clk: at91: utmi: use pmc_read when the at91_pmc is available
- clk: at91: system: don’t try to free_irq when there is no IRQ
- MAINTAINERS: explicitly add Atmel SAMA5
- ARM: at91: remove useless includes in platform_data/atmel.h
- ARM: at91: debug: use DEBUG_UART_PHYS
- power/reset: at91-reset: remove useless at91_reset_platform_probe()
- power/reset: at91-reset: allow compiling as a module
- power/reset: at91-reset: get and use slow clock
- power/reset: at91-poweroff: allow compiling as a module
- power/reset: at91-poweroff: get and use slow clock
- usb: gadget: at91_udc: move at91_udc_data in at91_udc.h
- tty/serial: at91: move ATMEL_MAX_UART
- clocksource: atmel-st: get and use slow clock
- can: at91: remove at91_can_data
- ARM: at91/dt: use syscon for PMC
- avr32: atngw100: remove useless include
- rtc: rx8025: remove unnecessary braces
- rtc: pcf85063: return an error when date is invalid
- rtc: Add a driver for Micro Crystal RV8803
- ARM: at91/dt: remove leftovers clock definition
- ARM: at91/dt: remove bootargs
- USB: host: ohci-at91: fix a crash in ohci_hcd_at91_overcurrent_irq
- Antoine Tenart (18):
- ARM: berlin: dts: add the cpufreq-dt bindings on the BG2Q
- ARM: berlin: dts: add the cpufreq-dt bindings on the BG2
- ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD
- ARM: berlin: register cpufreq-dt
- ARM: berlin: add a PWM node on the BG2Q
- ARM: berlin: add a PWM node on the BG2
- ARM: berlin: add a PWM node on the BG2CD
- clk: berlin: add cpuclk
- pinctrl: berlin: select the pinctrl driver according to the SoC used
- pinctrl: berlin: add explicit dependency on OF
- ARM: multi_v7_defconfig: improve multi_v7_defconfig support for Berlin
- pwm: Add Berlin PWM controller DT binding
- pwm: Add support for the Berlin PWM controller
- pinctrl: berlin: fix my family name spelling
- mtd: pxa3xx_nand: fix some compile issues on non-ARM arches
- mtd: pxa3xx_nand: add helpers to setup the timings
- mtd: pxa3xx_nand: rework flash detection and timing setup
- mtd: pxa3xx_nand: clean up the pxa3xx timings
- Boris BREZILLON (29):
- mtd: nand: sunxi: rely on nand_dt_init initialization
- mtd: nand: add nand_check_erased helper functions
- mtd: mtdpart: fix add_mtd_partitions error path
- mtd: nand: sunxi: rework macros
- mtd: nand: remove unused ->init_size() hook
- mtd: nand: sunxi: create sunxi_nfc_hw_ecc_enable()/disable() functions
- mtd: nand: sunxi: introduce sunxi_nfc_hw_ecc_read/write_chunk()
- mtd: nand: sunxi: make use of sunxi_nfc_hw_ecc_read/write_chunk()
- mtd: nand: sunxi: factorize extra OOB bytes handling
- mtd: nand: sunxi: retrieve corrected OOB bytes
- mtd: nand: sunxi: replace the NFC_BUF_TO_USER_DATA() macro by an inline function
- mtd: nand: sunxi: fix bitflips in erased pages
- mtd: nand: pass page number to ecc->write_xxx() methods
- crypto: testmgr – test IV value after a cipher operation
- mtd: nand: sunxi: fix sunxi_nfc_hw_ecc_read/write_chunk()
- mtd: nand: sunxi: avoid retrieving data before ECC pass
- regulator: pwm: implement ->enable(), ->disable() and ->is_enabled methods
- ARM: mvebu: add crypto related nodes to armada-xp.dtsi
- ARM: mvebu: define crypto SRAM ranges for all armada-xp boards
- ARM: mvebu: define crypto SRAM ranges for all armada-370 boards
- ARM: mvebu: add crypto related nodes to armada 375 dtsi
- ARM: mvebu: define crypto SRAM ranges in armada-375-db.dts
- clocksource: tcb_clksrc: fix setup_clkevents error path
- misc: atmel_tclib: get and use slow clock
- ARM: mvebu: add crypto related nodes to armada 38x dtsi
- ARM: mvebu: define crypto SRAM ranges for all armada-38x boards
- ARM: mvebu: use new bindings for existing crypto devices
- ARM: mvebu: modify Orion and Kirkwoord crypto compatible strings
- crypto: marvell/cesa – fix memory leak
- Gregory CLEMENT (2):
- Maxime Ripard (36):
- ASoC: sunxi: Add the Allwinner A10 codec bindings
- clk: sunxi: Add A33 gates support
- ARM: sun8i: Add the A33 AHB1 gates clock driver
- ARM: sun8i: Move A23 AHB1 gates out of common DTSI
- ARM: sun8i: A23: Add missing msgbox gate
- genirq: Fix the documentation of request_percpu_irq
- irq: Export per-cpu irq allocation and de-allocation functions
- irqchip: armada-370-xp: Rework per-cpu interrupts handling
- net: mvneta: Fix CPU_MAP registers initialisation
- net: mvneta: Handle per-cpu interrupts
- net: mvneta: Allow different queues
- net: mvneta: Statically assign queues to CPUs
- ASoC: sun4i-codec: pass through clk_set_rate error
- ASoC: sun4i-codec: Remove redundant SND_PCM_RATE_KNOT
- dmaengine: at_xdmac: handle numf > 1
- ASoC: sun4i-codec: Remove the routing property
- ARM: sun5i: Add R8 DTSI
- ARM: sun5i: dt: Move uart3 pinctrl node to common DTSI
- ARM: sun5i: dt: Add UART3 CTS and RTS pins
- ARM: sun5i: Add C.H.I.P DTS
- ARM: sunxi: Add R8 support
- clk: Add a basic multiplier clock
- clk: sunxi: Add a driver for the PLL2
- clk: sunxi: pll2: Add A13 support
- ARM: sun4i: Add audio PLL
- ARM: sun5i: Add audio PLL
- ARM: sun7i: Add audio PLL
- ARM: sun4i: Add audio codec clock
- ARM: sun5i: Add audio codec clock
- ARM: sun7i: Add audio codec clock
- ARM: sun5i: Add the Audio codec DT node
- ARM: sun7i: Enable cubieboard2 audio codec
- ARM: sun5i: chip: Enable the audio codec
- dmaengine: hdmac: factorise memset descriptor allocation
- dmaengine: hdmac: Add scatter-gathered memset support
- clk: sunxi: pll2: Fix clock running too fast
- Michael Opdenacker (4):
- Thomas Petazzoni (3):