Linus Torvalds has released the 4.9 Linux kernel yesterday, as was expected. With 16214 non-merge commits, this is by far the busiest kernel development cycle ever, but in large part due to the merging of thousands of commits to add support for Greybus. LWN has very well summarized what’s new in this kernel release: 4.9 Merge window part 1, 4.9 Merge window part 2, The end of the 4.9 merge window.
As usual, we take this opportunity to look at the contributions Bootlin made to this kernel release. In total, we contributed 116 non-merge commits. Our most significant contributions this time have been:
- Bootlin engineer Boris Brezillon, already a maintainer of the Linux kernel NAND subsystem, becomes a co-maintainer of the overall MTD subsystem.
- Contribution of an input ADC resistor ladder driver, written by Alexandre Belloni. As explained in the commit log: common way of multiplexing buttons on a single input in cheap devices is to use a resistor ladder on an ADC. This driver supports that configuration by polling an ADC channel provided by IIO.
- On Atmel platforms, improvements to clock handling, bug fix in the Atmel HLCDC display controller driver.
- On Marvell EBU platforms
- Addition of clock drivers for the Marvell Armada 3700 (Cortex-A53 based), by Grégory Clement
- Several bug fixes and improvements to the Marvell CESA driver, for the crypto engine founds in most Marvell EBU processors. By Romain Perier and Thomas Petazzoni
- Support for the PIC interrupt controller, used on the Marvell Armada 7K/8K SoCs, currently used for the PMU (Performance Monitoring Unit). By Thomas Petazzoni.
- Enabling of Armada 8K devices, with support for the slave CP110 and the first Armada 8040 development board. By Thomas Petazzoni.
- On Allwinner platforms
- Addition of GPIO support to the AXP209 driver, which is used to control the PMIC used on most Allwinner designs. Done by Maxime Ripard.
- Initial support for the Nextthing GR8 SoC. By Mylène Josserand and Maxime Ripard (pinctrl driver and Device Tree)
- The improved
sunxi-ng
clock code, introduced in Linux 4.8, is now used for Allwinner A23 and A33. Done by Maxime Ripard. - Add support for the Allwinner A33 display controller, by re-using and extending the existing
sun4i
DRM/KMS driver. Done by Maxime Ripard. - Addition of bridge support in the
sun4i
DRM/KMS driver, as well as the code for a RGB to VGA bridge, used by the C.H.I.P VGA expansion board. By Maxime Ripard.
- Numerous cleanups and improvements commits in the UBI subsystem, in preparation for merging the support for Multi-Level Cells NAND, from Boris Brezillon.
- Improvements in the MTD subsystem, by Boris Brezillon:
- Addition of
mtd_pairing_scheme
, a mechanism which allows to express the pairing of NAND pages in Multi-Level Cells NANDs. - Improvements in the selection of NAND timings.
- Addition of
In addition, a number of Bootlin engineers are also maintainers in the Linux kernel, so they review and merge patches from other developers, and send pull requests to other maintainers to get those patches integrated. This lead to the following activity:
- Maxime Ripard, as the Allwinner co-maintainer, merged 78 patches from other developers.
- Grégory Clement, as the Marvell EBU co-maintainer, merged 43 patches from other developers.
- Alexandre Belloni, as the RTC maintainer and Atmel co-maintainer, merged 26 patches from other developers.
- Boris Brezillon, as the MTD NAND maintainer, merged 24 patches from other developers.
The complete list of our contributions to this kernel release:
- Alexandre Belloni (16)
- usb: gadget: udc: atmel: fix endpoint name
- clk: at91: sckc: optimize boot time
- clk: at91: Add sama5d4 sckc support
- clk: at91: move slow clock controller clocks to sckc.c
- clocksource/drivers/timer-atmel-pit: Simplify IRQ handler
- clocksource/drivers/timer-atmel-pit: Remove uselesss WARN_ON_ONCE
- clocksource/drivers/timer-atmel-pit: Drop at91sam926x_pit_common_init
- rtc: asm9260: rework locking
- rtc: asm9260: allow COMPILE_TEST
- rtc: rx6110: remove owner assignment
- Documentation: dt: Intersil isl12057 is not a trivial device
- rtc: isl12057: remove driver
- rtc: ds1307: add Intersil ISL12057 support
- rtc: ds1307: fix century bit support
- Documentation: mic: fix kernel version
- Input: add ADC resistor ladder driver
- Boris Brezillon (34)
- m68k: Fix ndelay() macro
- ubi: fastmap: Fix add_vol() return value test in ubi_attach_fastmap()
- mtd: nand: Fix data interface configuration logic
- MAINTAINERS: add more people to the MTD maintainer team
- mfd: atmel-hlcdc: Do not sleep in atomic context
- UBI: introduce the VID buffer concept
- UBI: hide EBA internals
- UBI: provide an helper to query LEB information
- UBI: provide an helper to check whether a LEB is mapped or not
- UBI: add an helper to check lnum validity
- UBI: simplify LEB write and atomic LEB change code
- UBI: simplify recover_peb() code
- UBI: move the global ech and vidh variables into struct ubi_attach_info
- UBI: provide helpers to allocate and free aeb elements
- UBI: fastmap: use ubi_io_{read, write}_data() instead of ubi_io_{read, write}()
- UBI: fastmap: use ubi_rb_for_each_entry() in unmap_peb()
- UBI: factorize destroy_av() and ubi_remove_av() code
- UBI: factorize code used to manipulate volumes at attach time
- UBI: use vol->usable_leb_size instead of (ubi->leb_size – vol->data_pad)
- UBI: fastmap: scrub PEB when bitflips are detected in a free PEB EC header
- UBI: fastmap: avoid multiple be32_to_cpu() when unneccesary
- UBI: fix add_fastmap() to use the vid_hdr passed in argument
- UBI: fastmap: use ubi_find_volume() instead of open coding it
- mtd: Kill the OF_MTD Kconfig option
- mtd: nand: mxc: Test CONFIG_OF instead of CONFIG_OF_MTD
- mtd: nand: Fix nand_command_lp() for 8bits opcodes
- mtd: nand: sunxi: Support ECC maximization
- mtd: nand: Support maximizing ECC when using software BCH
- mtd: nand: Add an option to maximize the ECC strength
- mtd: nand: automate NAND timings selection
- mtd: nand_bbt: Move BBT block selection logic out of write_bbt()
- mtd: nand: timings: Reorder tRR_min def in mode 0
- mtd: nand: timings: Fix tADL_min for ONFI 4.0 chips
- mtd: introduce the mtd_pairing_scheme concept
- Gregory Clement (11)
- arm64: dts: marvell: Fix typo in label name on Armada 37xx
- clk: mvebu: armada-37xx-periph: Fix the clock gate flag
- clk: mvebu: armada-37xx-periph: Fix the clock provider registration
- ARM: mvebu: Select corediv clk for all mvebu v7 SoC
- arm64: configs: enable PCIe driver for Aardvark
- clk: mvebu: Add the peripheral clock driver for Armada 3700
- dt-bindings: clock: add DT binding for the peripheral clocks on Armada 3700
- clk: mvebu Add the time base generator clocks for Armada 3700
- dt-bindings: clock: add DT binding for the TBG clocks on Armada 3700
- clk: mvebu: Add the xtal clock for Armada 3700 SoC
- dt-bindings: clock: add DT binding for the Xtal clock on Armada 3700
- Mylene Josserand (3)
- Romain Perier (5)
- crypto: marvell – Don’t corrupt state of an STD req for re-stepped ahash
- crypto: marvell – Don’t copy hash operation twice into the SRAM
- crypto: marvell – Don’t hardcode block size in mv_cesa_ahash_cache_req
- crypto: marvell – Don’t overwrite default creq->state during initialization
- crypto: marvell – Update transformation context for each dequeued req
- Thomas Petazzoni (14)
- MAINTAINERS: Add maintainer for the PCIe Marvell Armada 8K driver
- MAINTAINERS: Add DT binding to the Aardvark PCIe driver maintainer
- arm64: dts: marvell: enable MSI for PCIe on Armada 7K/8K
- arm64: dts: marvell: describe the PIC and PMU on Armada 7K/8K
- arm64: marvell: enable the Marvell PIC driver
- irqchip/mvebu-pic: New driver for Marvell Armada 7K/8K PIC
- dt-bindings: interrupt-controller: add DT binding for Marvell 7K/8K PIC
- crypto: marvell – make mv_cesa_ahash_cache_req() return bool
- crypto: marvell – turn mv_cesa_ahash_init() into a function returning void
- crypto: marvell – remove unused parameter in mv_cesa_ahash_dma_add_cache()
- crypto: marvell – be explicit about destination in mv_cesa_dma_add_op()
- arm64: dts: marvell: add description for the Armada 8040 dev board
- arm64: dts: marvell: add description for the slave CP110 in Armada 8K
- arm64: defconfig: enable xhci-platform
- Maxime Ripard (32)
- ARM: gr8: Rename the DTSI and relevant DTS
- drm/sun4i: rgb: Remove the bridge enable/disable functions
- drm/bridge: Add RGB to VGA bridge support
- backlight: pwm_bl: Handle gpio that can sleep
- mfd: axp20x: Add AXP209 GPIO support
- gpio: axp209: Implement get_direction
- drm/sun4i: Fix the high buffer address mask
- drm/sun4i: tv: Check mode pointer
- drm/sun4i: Fix formats usable by the primary plane
- clk: sunxi-ng: Fix reset offset for the A23 and A33
- ARM: sun8i: a23/a33: Add RGB666 pins
- ARM: sun8i: a33: Add display pipeline
- ARM: sun8i: Convert the A23 and A33 to the CCU
- clk: sunxi-ng: Add A23 CCU
- clk: sunxi-ng: Add A33 CCU support
- clk: sunxi-ng: Add N-class clocks support
- clk: sunxi-ng: mux: Add mux table macro
- clk: sunxi-ng: div: Allow to set a maximum
- clk: sunxi-ng: div: Add kerneldoc for the _ccu_div structure
- clk: sunxi-ng: div: Add mux table macros
- ARM: sunxi: Support the Nextthing GR8
- drm/sun4i: Add a DRC driver
- drm/sun4i: backend: Handle the SAT
- drm/sun4i: support A33 tcon
- drm/sun4i: support TCONs without channel 1
- clk: sunxi-ng: mux: Rename mux macro to be consistent
- drm/sun4i: Add bridge support
- drm/sun4i: Move panel retrieval in RGB connector
- drm/sun4i: Store TCON’s device structure pointer
- ARM: sun5i: chip: Add status LED
- ARM: dt: axp209: Add AXP209 GPIO driver
- gpio: Add AXP209 GPIO driver
- Quentin Schulz (1)