Linux 4.8 has been released on Sunday by Linus Torvalds, with numerous new features and improvements that have been described in details on LWN: part 1, part 2 and part 3. KernelNewbies also has an updated page on the 4.8 release. We contributed a total of 153 patches to this release. LWN also published some statistics about this development cycle.
Our most significant contributions:
- Boris Brezillon improved the Rockchip PWM driver to avoid glitches basing that work on his previous improvement to the PWM subsystem already merged in the kernel. He also fixed a few issues and shortcomings in the pwm regulator driver. This is finishing his work on the Rockchip based Chromebook platforms where a PWM is used for a regulator.
- While working on the driver for the sii902x HDMI transceiver, Boris Brezillon did a cleanup of many DRM drivers. Those drivers were open coding the encoder selection. This is now done in the core DRM subsystem.
- On the support of Atmel platforms
- Alexandre Belloni cleaned up the existing board device trees, removing unused clock definitions and starting to remove warnings when compiling with the Device Tree Compiler (dtc).
- On the support of Allwinner platforms
- Maxime Ripard contributed a brand new infrastructure, named sunxi-ng, to manage the clocks of the Allwinner platforms, fixing shortcomings of the Device Tree representation used by the existing implementation. He moved the support of the Allwinner H3 clocks to this new infrastructure.
- Maxime also developed a driver for the Allwinner A10 Digital Audio controller, bringing audio support to this platform.
- Boris Brezillon improved the Allwinner NAND controller driver to support DMA assisted operations, which brings a very nice speed-up to throughput on platforms using NAND flashes as the storage, which is the case of Nextthing’s C.H.I.P.
- Quentin Schulz added support for the Allwinner R16 EVB (Parrot) board.
- On the support of Marvell platforms
- Grégory Clément added multiple clock definitions for the Armada 37xx series of SoCs.
- He also corrected a few issues with the I/O coherency on some Marvell SoCs
- Romain Perier worked on the Marvell CESA cryptography driver, bringing significant performance improvements, especially for dmcrypt usage. This driver is used on numerous Marvell platforms: Orion, Kirkwood, Armada 370, XP, 375 and 38x.
- Thomas Petazzoni submitted a driver for the Aardvark PCI host controller present in the Armada 3700, enabling PCI support for this platform.
- Thomas also added a driver for the new XOR engine found in the Armada 7K and Armada 8K families
Here are in details, the different contributions we made to this release:
- Alexandre Belloni (42)
- clocksource/drivers/timer-atmel-pit: Enable mck clock
- rtc: pcf85063: fix year range
- ARM: dts: at91: sama5d3x: separate motherboard gmac and emac definitions
- ARM: dts: at91: at91sam9g25ek: fix isi endpoint node
- ARM: dts: at91: move isi definition to at91sam9g25ek
- ARM: dts: at91: fix i2c-gpio node name
- ARM: dts: at91: vinco: fix regulator name
- ARM: dts: at91: ariag25 : fix onewire node
- ARM: dts: at91: sama5d4_ma5d4evk: fix regulator names
- ARM: dts: at91: sama5d4_ma5d4: fix regulator names
- ARM: dts: at91: sama5d4_xplained: fix regulator names
- ARM: dts: at91: sama5d3_xplained: fix regulator name
- ARM: dts: at91: sama5d4ek: remove useless lcd_bus
- ARM: dts: at91: Fix USB endpoint nodes
- Documentation: dt: usb: atmel-usb: add unit-address
- ARM: dts: at91: Fix ADC trigger nodes
- Documentation: dt: iio: at91_adc: fix trigger node names
- rtc: v3020: move rtc-v3020.h to platform_data
- rtc: ds1286: move header to linux/rtc
- ARM: multi_v7_defconfig: add ACT8945A
- dmaengine: at_xdmac: fix debug string
- clocksource/drivers/samsung_pwm: Fix typo in Kconfig
- rtc: adjust MAINTAINERS entry
- rtc: m48t86: move m48t86.h to platform_data
- rtc: ds2404: move rtc-ds2404.h to platform_data
- rtc: ds17287: remove unused header
- rtc: rv8803: broaden workaround
- tty/serial: atmel: fix RS485 half duplex with DMA
- usb: gadget: udc: atmel: Also get regmap for at91sam9x5-pmc
- ARM: multi_v5_defconfig: enable Atmel platforms
- ARM: at91: debug: add default DEBUG_LL addresses
- ARM: at91: debug: use DEBUG_UART_VIRT
- ARM: dts: at91: calao: remove leftovers clock definition
- ARM: dts: at91: pm9g45: remove leftovers clock definition
- ARM: dts: at91: mpa1600: remove leftovers clock definition
- ARM: dts: at91: ge863-pro3: remove leftovers clock definition
- ARM: dts: at91: at91-foxg20: remove leftovers clock definition
- ARM: dts: at91: at91-cosino: remove leftovers clock definition
- ARM: dts: at91: at91-ariag25: remove leftovers clock definition
- ARM: dts: at91: animeo_ip: remove leftovers clock definition
- ARM: dts: at91: ma5d4: properly define crystals frequencies
- ARM: dts: at91: usb_a9g20: use stdout-path
- Antoine Tenart (1)
- Boris Brezillon (49)
- irqchip/atmel-aic: Fix potential deadlock in ->xlate()
- genirq: Provide irq_gc_{lock_irqsave,unlock_irqrestore}() helpers
- drm/cirrus: Fix NULL pointer dereference when registering the fbdev
- regulator: pwm: Document pwm-dutycycle-unit and pwm-dutycycle-range
- regulator: pwm: Support extra continuous mode cases
- pwm: rockchip: Add support for atomic update
- pwm: rockchip: Avoid glitches on already running PWMs
- pwm: rockchip: Add support for hardware readout
- pwm: rockchip: Fix period and duty cycle approximation
- regulator: pwm: Retrieve correct voltage
- regulator: pwm: Properly initialize the ->state field
- regulator: pwm: Switch to the atomic PWM API
- regulator: pwm: Adjust PWM config at probe time
- mtd: nand: sunxi: fix subpage write
- mtd: nand: sunxi: check ecc->size values
- mtd: nand: sunxi: prefer 1k ECC blocks when applicable
- mtd: nand: sunxi: Fix OOB bytes retrieval in read_chunks_dma()
- pwm: Add relative duty cycle manipulation helpers
- pwm: Add a helper to prepare a new PWM state
- ARM: dts: sun7i: Add NFC node to Allwinner A20 SoC
- ARM: dts: sun4i: Add NFC node to Allwinner A10 SoC
- drm/bridge: Add sii902x DT bindings doc
- drm/bridge: Add sii902x driver
- drm: i915: Rely on the default ->best_encoder() behavior where appropriate
- drm/bridge: dw-hdmi: Use drm_atomic_helper_best_encoder()
- drm/bridge: ps8622: Rely on the default ->best_encoder() behavior
- drm/bridge: ptn3460: Rely on the default ->best_encoder() behavior
- drm/bridge: anx78xx: Rely on the default ->best_encoder() behavior
- drm: omap: Rely on the default ->best_encoder() behavior
- drm: virtgpu: Rely on the default ->best_encoder() behavior
- drm: vc4: Rely on the default ->best_encoder() behavior
- drm: tegra: Rely on the default ->best_encoder() behavior
- drm: sun4i: Rely on the default ->best_encoder() behavior
- drm: rockchip: Rely on the default ->best_encoder() behavior
- drm: rcar-du: Rely on the default ->best_encoder() behavior
- drm: fsl-dcu: Rely on the default ->best_encoder() behavior
- drm: exynos: Rely on the default ->best_encoder() behavior
- drm: atmel-hlcdc: Rely on the default ->best_encoder() behavior
- drm: arc: Rely on the default ->best_encoder() behavior
- drm: sti: Rely on the default ->best_encoder() behavior
- drm: msm: Rely on the default ->best_encoder() behavior where appropriate
- drm: mediatek: Rely on the default ->best_encoder() behavior
- drm/atomic: Fix remaining places where !funcs->best_encoder is valid
- mtd: nand: sunxi: update DT bindings
- mtd: nand: sunxi: add support for DMA assisted operations
- regulator: pwm: Drop unneeded pwm_enable() call
- memory: atmel-ebi: add DT bindings documentation
- memory: add Atmel EBI (External Bus Interface) driver
- drm/atomic: Handle funcs->best_encoder == NULL case
- Gregory Clement (8)
- ARM: dts: kirkwood: Fix PCIe label on OpenRD
- clocksource/drivers/time-armada-370-xp: Fix the clock reference
- ARM: 8561/4: dma-mapping: Fix the coherent case when iommu is used
- ARM: 8561/3: dma-mapping: Don’t use outer_flush_range when the L2C is coherent
- arm64: dts: marvell: add peripherals clocks for Armada 37xx
- arm64: dts: marvell: add tbg clocks for Armada 37xx
- arm64: dts: marvell: Add xtal clock support for Armada 3700
- arm64: marvell: enable Armada 3700 clock drivers
- Romain Perier (15)
- crypto: marvell – Don’t copy IV vectors from the _process op for ciphers
- crypto: marvell – Update cache with input sg only when it is unmapped
- crypto: marvell – Don’t chain at DMA level when backlog is disabled
- crypto: marvell – Fix memory leaks in TDMA chain for cipher requests
- crypto: marvell – Fix wrong flag used for GFP in mv_cesa_dma_add_iv_op
- crypto: marvell – Increase the size of the crypto queue
- crypto: marvell – Add support for chaining crypto requests in TDMA mode
- crypto: marvell – Add load balancing between engines
- crypto: marvell – Move SRAM I/O operations to step functions
- crypto: marvell – Add a complete operation for async requests
- crypto: marvell – Move tdma chain out of mv_cesa_tdma_req and remove it
- crypto: marvell – Copy IV vectors by DMA transfers for acipher requests
- crypto: marvell – Fix wrong type check in dma functions
- crypto: marvell – Check engine is not already running when enabling a req
- crypto: marvell – Add a macro constant for the size of the crypto queue
- Thomas Petazzoni (9)
- arm64: dts: marvell: Add Aardvark PCIe support for Armada 3700
- PCI: aardvark: Add Aardvark PCI host controller driver
- dt-bindings: add DT binding for the Aardvark PCIe controller
- dmaengine: mv_xor_v2: new driver
- dt-bindings: dma: add binding for the Marvell XOR v2 engine
- arm64: dts: marvell: add XOR engine description for Armada 7K/8K CP
- arm64: dts: marvell: adjust to the latest mv-xor-v2 DT binding
- serial: mvebu-uart: free the IRQ in ->shutdown()
- arm64: configs: enable PCIe driver for Armada 7K/8K
- Maxime Ripard (26)
- ARM: dt: sun8i: switch the H3 to the new CCU driver
- clk: sunxi-ng: h3: Fix Kconfig symbol typo
- clk: sunxi-ng: h3: Fix audio clock divider offset
- clk: sunxi-ng: Add H3 clocks
- clk: sunxi-ng: Add N-K-M-P factor clock
- clk: sunxi-ng: Add N-K-M Factor clock
- clk: sunxi-ng: Add N-M-factor clock support
- clk: sunxi-ng: Add N-K-factor clock support
- clk: sunxi-ng: Add M-P factor clock support
- clk: sunxi-ng: Add divider
- clk: sunxi-ng: Add phase clock support
- clk: sunxi-ng: Add mux clock support
- clk: sunxi-ng: Add gate clock support
- clk: sunxi-ng: Add fractional lib
- clk: sunxi-ng: Add common infrastructure
- dt-bindings: sunxi: Add CCU binding documentation
- ARM: sun5i: Allow PLL3 2x fixed factor clock to change PLL3 rate
- ARM: sun7i: Add DAI nodes
- ARM: sun5i: Move display blocks to A13
- ARM: sun5i: a13: Add LCD pins
- clk: fixed-factor: Allow for a few clocks to change the parent rate
- ASoC: sunxi: Add Allwinner A10 Digital Audio driver
- ASoC: sunxi: Add A10 I2S controller binding documentation
- clk: multiplier: Prevent the multiplier from under / over flowing
- ARM: sunxi: Enable sun4i DRM driver
- ARM: multi_v7: Enable sun4i DRM driver
- Quentin Schulz (3)