The 3.12 kernel has just been released by Linus Torvalds, who summarized what he considers to be the major improvements offered by this release: improvements to the dynamic tick code, support infrastructure for DRM render nodes, TSO sizing and the FQ scheduler in the network layer, support for user namespaces in the XFS filesystem, multithreaded RAID5 in the MD subsystem, offline data deduplication in the Btrfs filesystem.
As usual, Bootlin contributed to the Linux kernel during this cycle, and according to the statistics at KPS, Bootlin is the 14th contributor in terms of number of commits, as a company. Bootlin contributed 185 patches to this kernel release, on a total of 10920 patches. Note that this classification includes the “Unknown” company which ranks first, gathering the contributions from all the contributors that are not known to be affiliated to any company.
The highlights of our contributions are:
- Addition of support for the HX8369 LCD controller to the driver we had contributed earlier for the HX8357 LCD controller, in drivers/video/backlight/hx8357.c. These LCD controllers are used by the Crystalfontz i.MX28 boards, and this new development was done primarily by Alexandre Belloni.
- Addition of a driver for the Nuvoton NAU7802 ADC chip on I2C, in drivers/iio/adc/nau7802.c. Some initial work was done by Maxime Ripard, but lots of debugging and additional work was done by Alexandre Belloni, who also pushed the driver to the mainline.
- Added Device Tree information for the PMU unit on Atmel SAMA5D3 platforms, which allows to use perf on these platforms. Done by Alexandre Belloni.
- Addition of a Device Tree binding to the mvebu-mbus driver, which controls the configuration of the MBus on Marvell EBU platforms (Armada 370/XP, Kirkwood, Dove, etc.). This binding took a lot of discussion time, and many iterations before reaching a state that was considered acceptable for mainline, but it has finally been merged in 3.12. The core of this work was done by Ezequiel Garcia, with several contributions from Thomas Petazzoni to convert existing platforms to the new APIs.
- Many cleanups and improvements to the nand_pxa3xx driver, which for the moment is used for the NAND controller on PXA3xx, but that we are currently extending to also cover the NAND controller of Armada 370/XP platforms. In 3.12, only some cleanups have been integrated, and we are currently submitting the more important patches for mainline integration. This work was done by Ezequiel Garcia.
- Cleanups, and conversion to
CLOCKSOURCE_OF_DECLARE
of the Armada 370/XP clocksource driver. Done by Ezequiel Garcia. - Extension of the Marvell I2C driver to use a new feature of the I2C controller found on Armada 370/XP, which allows to program an entire transaction at once, instead of having interrupts at each step of the transaction. This work was done by Gregory Clement.
- The quest of removing unneeded
->init_irq()
callbacks in machine descriptors continued, with Maxime Ripard removing 4 additional occurrences of this inmach-shmobile
. - Cleanups and improvements to the sun4i clocksource driver, used on Allwinner SOCs. Done by Maxime Ripard.
- Introduction of the initial support for the Allwinner A31 SOC and its WITS Columbus evaluation kit, as well as initial support for the Allwinner A20 SOC and the Olimex A20-Olinuxino-Micro and Cubieboard2 board, both based on the Allwinner A20 SOC. This includes clock support, pinctrl support, Ethernet support where applicable, and more. Work done by Maxime Ripard.
- Michael Opdenacker continued his fight against IRQF_DISABLED and removed more occurrences of them. Michael also fixed a few issues in some Kconfig files.
- Fixed big-endian issues in the Marvell mvneta Ethernet driver and the Marvell XOR driver, in preparation for the addition of big-endian support to the
mach-mvebu
platform. Done by Thomas Petazzoni. - Conversion of a few more Kirkwood platforms to the Device Tree, and removal of legacy support for other Kirkwood platforms that were already converted to the Device Tree. Done by Thomas Petazzoni.
- Addition of the support for the Armada XP based AXP-WiFi AP board, from Marvell. Done by Thomas Petazzoni.
- Improvements of the MSI infrastructure in the kernel: consolidation of code between architectures, addition of a registry of
msi_chip
. This preparatory work was needed to introduce MSI support for Armada 370/XP, which should hopefully make its way into 3.13. Work done by Thomas Petazzoni.
In details, our contributions were:
- Alexandre Belloni (10):
- fb: backlight: HX8357: Add HX8369 support
- iio: Add Nuvoton NAU7802 ADC driver
- ARM: mxs: dt: cfa10037: make hogpins grabbed by respective drivers
- ARM: mxs: dt: cfa10049: make hogpins grabbed by respective drivers
- ARM: mxs: dt: cfa10055: make hogpins grabbed by respective drivers
- ARM: mxs: dt: cfa10057: remove hogpins
- ARM: mxs: dt: cfa10036: make hogpins grabbed by respective drivers
- ARM: mxs: Simplify detection of CrystalFontz boards
- ARM: at91: Add PMU support for sama5d3
- mac802154: correct a typo in ieee802154_alloc_device() prototype
- Ezequiel Garcia (66):
- PCI: Rename “PCI Express support” kconfig title
- [media] stk1160: Allow to change input while streaming
- [media] media: stk1160: Ignore unchanged standard set
- sata_mv: Remove unneeded forward declaration
- sata_mv: Remove unneeded CONFIG_HAVE_CLK ifdefs
- mtd: nand: pxa3xx: Use devm_kzalloc
- mtd: nand: pxa3xx: Use devm_ioremap_resource
- mtd: nand: pxa3xx: Use devm_clk_get
- mtd: nand: pxa3xx: Use clk_prepare_enable and clk_disable_unprepare
- mtd: nand: pxa3xx: Check for clk_prepare_enable() return value
- mtd: nand: pxa3xx: Move buffer release code to its own function
- mtd: nand: pxa3xx: Set info->use_dma properly
- mtd: nand: pxa3xx: Use of_machine_is_compatible()
- mtd: nand: pxa3xx: Fix MODULE_DEVICE_TABLE declaration
- mtd: nand: pxa3xx: Add address support for READID command
- mtd: nand: pxa3xx: Add support for Read parameter page command
- memory: mvebu-devbus: Remove address decoding window workaround
- bus: mvebu-mbus: Factor out initialization details
- bus: mvebu-mbus: Introduce device tree binding
- bus: mvebu-mbus: Add static window allocation to the DT binding
- bus: mvebu-mbus: Add new API for the PCIe memory and IO aperture
- PCI: mvebu: Check valid base address before port setup
- ARM: mvebu: Remove the harcoded BootROM window allocation
- ARM: mvebu: Initialize MBus using the DT binding
- ARM: mvebu: Use the preprocessor on Armada 370/XP device tree files
- ARM: mvebu: Add MBus to Armada 370/XP device tree
- ARM: mvebu: Add BootROM to Armada 370/XP device tree
- ARM: mvebu: Relocate Armada 370/XP DeviceBus device tree nodes
- ARM: mvebu: Relocate Armada 370/XP PCIe device tree nodes
- ARM: kirkwood: Split DT and legacy MBus initialization
- ARM: kirkwood: Use the preprocessor on device tree files
- ARM: kirkwood: Introduce MBus DT node
- ARM: kirkwood: Introduce MBUS_ID
- ARM: kirkwood: Relocate PCIe device tree nodes
- bus: mvebu-mbus: Add devicetree binding
- ARM: mvebu: Fix AXP-WiFi-AP DT for MBUS DT binding
- ARM: mvebu: Relocate PCIe node in Armada 370 RD board
- memory: mvebu-devbus: Remove unused variable
- ARM: mvebu: Fix the Armada 370/XP timer compatible strings
- ARM: 7818/1: feroceon: Add suspend/resume operation
- ARM: OMAP2: Use a consistent AM33XX SoC option description
- mtd: nand: pxa3xx: Introduce ‘marvell,armada370-nand’ compatible string
- mtd: nand: pxa3xx: Handle ECC and DMA enable/disable properly
- mtd: nand: pxa3xx: Allow to set/clear the ‘spare enable’ field
- mtd: nand: pxa3xx: Support command buffer #3
- mtd: nand: pxa3xx: Use ‘length override’ in ONFI paramater page read
- mtd: nand: pxa3xx: Add a local loop variable
- mtd: nand: pxa3xx: Remove hardcoded mtd name
- mtd: nand: pxa3xx: Remove unneeded internal cmdset
- mtd: nand: pxa3xx: Move cached registers to info structure
- mtd: nand: pxa3xx: Make dma code dependent on dma capable platforms
- mtd: nand: pxa3xx: Add __maybe_unused keyword to enable_int()
- mtd: nand: pxa3xx: Allow devices with no dma resources
- mtd: nand: Allow to build pxa3xx_nand on Orion platforms
- clocksource: armada-370-xp: Use BIT()
- clocksource: armada-370-xp: Simplify TIMER_CTRL register access
- clocksource: armada-370-xp: Use CLOCKSOURCE_OF_DECLARE
- clocksource: armada-370-xp: Introduce new compatibles
- clocksource: armada-370-xp: Fix device-tree binding
- clocksource: armada-370-xp: Replace WARN_ON with BUG_ON
- clocksource: armada-370-xp: Get reference fixed-clock by name
- clocksource: armada-370-xp: Add detailed clock requirements in devicetree binding
- mtd: nand: pxa3xx: Remove unneeded ifdef CONFIG_OF
- ARM: mvebu: Add the reference 25 MHz fixed-clock to Armada XP
- ARM: mvebu: Add clock properties to Armada XP timer node
- mtd: nand: pxa3xx: Fix registered MTD name
- Gregory CLEMENT (2):
- Maxime Ripard (53):
- ARM: shmobile: emev2: Remove init_irq declaration in machine description
- ARM: shmobile: r8a73a4: Remove init_irq declaration in machine description
- ARM: shmobile: r8a7790: Remove init_irq declaration in machine description
- ARM: shmobile: sh73a0: Remove init_irq declaration in machine description
- clocksource: sun4i: Use the BIT macros where possible
- clocksource: sun4i: Wrap macros arguments in parenthesis
- clocksource: sun4i: rename AUTORELOAD define to RELOAD
- clocksource: sun4i: Add clocksource and sched clock drivers
- clocksource: sun4i: Don’t forget to enable the clock we use
- clocksource: sun4i: Fix the next event code
- clocksource: sun4i: Factor out some timer code
- clocksource: sun4i: Remove TIMER_SCAL variable
- clocksource: sun4i: Cleanup parent clock setup
- clocksource: sun4i: Fix bug when switching from periodic to oneshot modes
- ARM: sunxi: Remove Makefile.boot file
- video: hx8357: Make IM pins optional
- ARM: sun4i: a10: Remove useless simple-bus reg property
- ARM: sun4i: dt: Fix A10 SoC bus base address
- ARM: sun5i: a10s: Remove useless simple-bus reg property
- ARM: sun5i: dt: Fix A10s SoC bus base address
- ARM: sun5i: a13: Remove useless simple-bus reg property
- ARM: sun5i: dt: Fix A13 SoC bus base address
- ARM: sunxi: Add Allwinner A31 DTSI
- ARM: sun6i: Add WITS Colombus A31 evaluation kit support
- ARM: sunxi: Add the Allwinner A31 compatible to the machine definition
- ARM: sun6i: Add restart code for the A31
- ARM: sunxi: Introduce Allwinner A20 support
- ARM: sun7i: Add Allwinner A20 DTSI
- ARM: sun7i: Add Olimex A20-Olinuxino-Micro support
- ARM: sunxi: dt: Add PIO controller to A31 DTSI
- ARM: sun6i: Add UART0 muxing options
- ARM: sun6i: colombus: Add uart0 muxing
- ARM: sun7i: Add the PIO controller node to the DTSI
- ARM: sun7i: DT: Add UART muxing options to the DTSI
- ARM: sun7i: a20-olinuxino: Enable UARTs muxing
- ARM: sun7i: a20-olinuxino: Enable the user LED
- ARM: sun7i: Add Cubieboard2 Device Tree
- pinctrl: sunxi: Fix inconsistent indentation
- pinctrl: sunxi: Add Allwinner A31 pins set
- pinctrl: sunxi: Add Allwinner A20 pins set
- clk: sunxi: Add A10s gates
- clk: sunxi: Rename the structure to prepare the addition of sun6i
- clk: sunxi: Allow to specify the divider width from the dividers data
- ARM: sun5i: dt: Use the A10s gates in the DTSI
- ARM: sun6i: Enable clock support in the DTSI
- ARM: sun7i: Enable the A20 clocks in the DTSI
- clk: sunxi: Add A31 clocks support
- clk: sunxi: Add Allwinner A20 gates
- ARM: dts: sun7i: Enable the Ethernet in the A20
- ARM: dts: sun7i: Add the muxing options for the EMAC
- ARM: dts: sun7i: cubieboard2: Enable the EMAC
- ARM: dts: sun7i: olinuxino-micro: Enable the EMAC
- watchdog: sunxi: Fix section mismatch
- Michael Opdenacker (20):
- drivers/video: remove unused parameter in Kconfig
- mtd: diskonchip: remove unused entries in Kconfig
- mlx5: remove unused MLX5_DEBUG param in Kconfig
- net: korina: remove deprecated IRQF_DISABLED
- bcm63xx_enet: remove deprecated IRQF_DISABLED
- bfin_mac: remove deprecated IRQF_DISABLED
- ehea: remove deprecated IRQF_DISABLED
- ethernet: amd: remove deprecated IRQF_DISABLED
- net: tulip: remove deprecated IRQF_DISABLED
- net: fec: remove deprecated IRQF_DISABLED
- net: hp100: remove deprecated IRQF_DISABLED
- net: lantiq_etop: remove deprecated IRQF_DISABLED
- net: pxa168_eth: remove deprecated IRQF_DISABLED
- net: ks8851-ml: remove deprecated IRQF_DISABLED
- net: natsemi: remove deprecated IRQF_DISABLED
- net: pasemi: remove deprecated IRQF_DISABLED
- net: smsc: remove deprecated IRQF_DISABLED
- net: ps3_gelic: remove deprecated IRQF_DISABLED
- ARM: at91: remove IRQF_DISABLED
- sparc: remove deprecated IRQF_DISABLED
- Thomas Petazzoni (34):
- net: mvneta: move the RX and TX desc macros outside of the structs
- net: mvneta: support big endian
- ARM: mvebu: add gpio-keys and input event support in defconfig
- bus: mvebu-mbus: Add new API for window creation
- ARM: kirkwood: Move to ID based MBus window creation
- ARM: mv78xx0: Move to ID based window creation
- ARM: orion5x: Move to ID based window creation
- ARM: dove: Move to ID based window creation
- PCI: mvebu: Adapt to the new device tree layout
- bus: mvebu-mbus: Remove the no longer used name-based API
- bus: mvebu-mbus: Remove name -> target, attribute mapping tables
- bus: mvebu-mbus: Update main description
- bus: mvebu-mbus: Factorize Armada 370/XP data structures
- PCI: mvebu: Adapt to the new device tree layout
- ARM: kirkwood: remove support for legacy booting of Dockstar
- ARM: kirkwood: remove support for legacy booting of Guruplug
- ARM: kirkwood: remove support for legacy booting of Sheevaplug
- ARM: kirkwood: remove LaCie boards that are supported through DT
- ARM: kirkwood: convert the mv88f6281gtw_ge board to DT
- ARM: mvebu: add support for the AXP WiFi AP board
- PCI: use weak functions for MSI arch-specific functions
- PCI: remove ARCH_SUPPORTS_MSI kconfig option
- of: pci: add registry of MSI chips
- ARM: pci: add ->add_bus() and ->remove_bus() hooks to hw_pci
- PCI: mvebu: Make Marvell PCIe driver depend on OF
- PCI: msi: add default MSI operations for !HAVE_GENERIC_HARDIRQS platforms
- ARM: mvebu: use correct #interrupt-cells instead of #interrupts-cells
- mv_xor: use {readl, writel}_relaxed instead of __raw_{readl, writel}
- mv_xor: support big endian systems using descriptor swap feature
- net: mvneta: properly disable HW PHY polling and ensure adjust_link() works
- net: mvneta: implement ->ndo_do_ioctl() to support PHY ioctls
- ASoC: kirkwood: change the compatible string of the kirkwood-i2s driver
- sparc: fix MSI build failure on Sparc32
- x86, build, pci: Fix PCI_MSI build on !SMP