After a month of February busier than usual, with the renaming of our company from Free Electrons to Bootlin, our participation to FOSDEM and the welcoming of Maxime Chevallier, the latest addition to our engineering team, our article on the latest release of the Linux kernel arrives a bit late, more than a month after Linux 4.15 has been released by Linus Torvalds.
As usual, LWN.net did an interesting coverage of this release cycle merge window, highlighting the most important changes: The first half of the 4.15 merge window and The rest of the 4.15 merge window. Due to the now well-known Spectre and Meltdown vulnerabilities and the resulting effort to try to mitigate them, 4.15 required a -rc9, which happened the last time back in 2011 with the 3.1, Torvalds said.
According to Linux Kernel Patch statistics, Bootlin (now Bootlin) contributed 150 patches to this release, making it the 16th contributing company by number of commits.
The main highlights of our contributions are:
- In the RTC subsystem, Alexandre Belloni made a number of improvements to various drivers, mainly making them use the nvmem subsystem where appropriate, and use the recently introduced rtc_register_device() API.
- In the MTD subsystem, both Boris Brezillon and Miquèl Raynal made a number of contributions, mainly fixes.
- For Marvell platforms
- Antoine Ténart contributed a few fixes to the inside-secure crypto accelerator driver, used on Marvell Armada 3700 and Armada 7K/8K
- Antoine Ténart also contributed fixes and improvements to the mvpp2 network driver, used for the Ethernet controller on the Marvell Armada 7K/8K. His improvements include preparation work to support Receive Side Scaling (RSS).
- Antoine Ténart enabled more networking ports and features in some Armada 7K/8K boards, especially SFP ports on Armada 7040 DB and Armada 7040 DB.
- Boris Brezillon contributed a few fixes to the Marvell CESA crypto accelerator driver, used on the older Orion, Kirkwood, Armada 370/XP/38x processors. He migrated the driver to use the skcipher interface of the Linux kernel crypto framework.
- Grégory Clement enabled NAND support on Armada 7K, and contributed a number of fixes around MMC support for some Marvell boards.
- Thomas Petazzoni contributed a few minor Device Tree enhancements for Marvell platforms: fixing MPP muxing on an older Kirkwood platform, enabling more PCIe ports on Armada 8040 DB, etc.
- Miquèl Raynal contributed support for more advanced statistics in the mvpp2 network driver.
- Miquèl Raynal added support for the extended UART for the Marvell Armada 3720 processor, both in the UART driver and in the Device Tree.
- For the RaspberryPi platform, Boris Brezillon contributed a few fixes to the vc4 display driver, and added support for the new
DRM_IOCTL_VC4_GEM_MADVISE
ioctl, which can be used to ask the userspace applications to purge inactive buffers when allocations start to fail in the kernel. - For Allwinner platforms
- Mylène Josserand contributed a fix for the Allwinner A83 clock driver, fixing I2C bus clocks.
- Quentin Schulz contributed a few fixes to the sun4i-gpadc-iio.c driver, which is used for the ADCs on several Allwinner processors.
- Maxime Ripard made a number of fixes to the sun8i-codec driver, fixing clock issues, left/right channels inversion, etc.
- Maxime Ripard made a number of improvements to the sun4i DRM display driver.
- Maxime Ripard improved the support for the A83 processor (described the UART1 controller, the MMC1 controller, added support for display clocks) and added the Device Tree for a new A83 device.
- Maxime Ripard also did a number of cleanups and misc improvements in a significant number of Device Tree files for Allwinner platforms.
- Thomas Petazzoni made a few fixes to the sh_eth network driver, used on several Renesas SuperH platform, as part of a recent project Bootlin did on SuperH 4.
Bootlin engineers are not only contributors, but also maintainers of various subsystems in the Linux kernel, which means they are involved in the process of reviewing, discussing and merging patches contributed to those subsystems:
- Maxime Ripard, as the Allwinner platform co-maintainer, merged 108 patches from other contributors
- Boris Brezillon, as the MTD/NAND maintainer, merged 34 patches from other contributors
- Alexandre Belloni, as the RTC maintainer and Atmel platform co-maintainer, merged 50 patches from other contributors
- Grégory Clement, as the Marvell EBU co-maintainer, merged 24 patches from other contributors
Here is the commit by commit detail of our contributons to 4.15:
- Alexandre Belloni (28)
- ASoC: atmel-classd: select correct Kconfig symbol
- rtc: at91rm9200: fix reading alarm value
- rtc: at91rm9200: stop calculating yday in at91_rtc_readalarm
- rtc: pcf8563: don’t alway enable the alarm
- rtc: omap: Support scratch registers
- m68k: pull mach_beep in setup.c
- rtc: omap: switch to rtc_register_device
- rtc: omap: fix error path when pinctrl_register fails
- rtc: ds1390: Add OF device ID table
- rtc: ds1511: use generic nvmem
- rtc: ds1511: allow waking platform
- rtc: ds1511: switch to rtc_register_device
- rtc: abx80x: solve race condition
- rtc: abx80x: switch to rtc_register_device
- rtc: m48t86: use generic nvmem
- rtc: m48t86: switch to rtc_register_device
- rtc: ds1305: use generic nvmem
- rtc: ds1305: switch to rtc_register_device
- ARM: dts: at91: usb_a9g20: fix rtc node
- dt-bindings: rtc: merge ds1339 in ds1307 documentation
- dt-bindings: rtc: Add bindings for m41t80 and compatibles
- dt-bindings: rtc: DS1307 and compatibles are not trivial
- dt-bindings: rtc: Add sirf,prima2-sysrtc bindings
- dt-bindings: rtc: add stericsson,coh901331 bindings
- dt-bindings: trivial: Add RTCs
- rtc: set the alarm to the next expiring timer
- rtc: rv3029: fix vendor string
- MAINTAINERS: Add SoC drivers to AT91 entry
- Antoine Tenart (25)
- crypto: inside-secure – do not use areq->result for partial results
- crypto: inside-secure – fix request allocations in invalidation path
- crypto: inside-secure – free requests even if their handling failed
- net: mvpp2: fix the RSS table entry offset
- net: phy: marvell10g: fix the PHY id mask
- net: mvpp2: check ethtool sets the Tx ring size is to a valid min value
- net: mvpp2: cleanup probed ports in the probe error path
- net: mvpp2: fix the txq_init error path
- net: mvpp2: simplify the Tx desc set DMA logic
- net: mvpp2: use the aggr txq size define everywhere
- net: mvpp2: limit TSO segments and use stop/wake thresholds
- net: mvpp2: initialize the RSS tables
- net: mvpp2: initialize the Tx FIFO size
- net: mvpp2: set the Rx FIFO size depending on the port speeds for PPv2.2
- phy: mvebu-cp110-comphy: remove unused member in private struct
- arm64: dts: marvell: 8040-db: enable the SFP ports
- arm64: dts: marvell: 7040-db: enable the SFP port
- arm64: dts: marvell: 7040-db: add comphy reference to Ethernet port
- arm64: dts: marvell: mcbin: add comphy references to Ethernet ports
- arm64: dts: marvell: 37xx: remove empty line
- arm64: dts: marvell: cp110: add PPv2 port interrupts
- arm64: dts: marvell: add comphy nodes on cp110 master and slave
- arm64: dts: marvell: extend the cp110 syscon register area length
- arm64: defconfig: enable the Marvell 10G PHY as a module
- net: mvpp2: remove useless goto
- Boris Brezillon (15)
- drm/vc4: Fix NULL pointer dereference in vc4_save_hang_state()
- mtd: nand: pxa3xx: Fix READOOB implementation
- drm/vc4: Fix false positive WARN() backtrace on refcount_inc() usage
- mtd: Avoid probe failures when mtd->dbg.dfs_dir is invalid
- mtd: Add sanity checks in mtd_write/read_oob()
- crypto: marvell – Add a NULL entry at the end of mv_cesa_plat_id_table[]
- drm/vc4: Fix wrong printk format in vc4_bo_stats_debugfs()
- crypto: marvell – Switch cipher algs to the skcipher interface
- crypto: marvell – Remove the old mv_cesa driver
- ARM: configs: Stop selecting the old CESA driver
- crypto: marvell – Add a platform_device_id table
- drm/vc4: Add the DRM_IOCTL_VC4_GEM_MADVISE ioctl
- drm/gem-cma-helper: Change the level of the allocation failure message
- mtd: nand: atmel: Actually use the PM ops
- mtd: nand: Export nand_reset() symbol
- Gregory Clement (9)
- ARM64: dts: marvell: armada-cp110: Fix clock resources for various node
- pinctrl: armada-37xx: Fix direction_output() callback behavior
- arm64: dts: marvell: 7040-db: Add the carrier detect pin for SD card on CP
- arm64: dts: marvell: 7040-db: Document the gpio expander
- arm64: defconfig: enable RTC on Armada 7K/8K SoCs
- mtd: nand: pxa3xx_nand: Update Kconfig information
- arm64: defconfig: enable NAND on Armada 7K/8K SoCs
- arm64: dts: marvell: add NAND support on the 7040-DB board
- arm64: dts: marvell: armada-3720-db: Add vmmc regulator for SD slot
- Mylene Josserand (1)
- Thomas Petazzoni (6)
- ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7
- net: sh_eth: do not advertise Gigabit capabilities when not available
- net: sh_eth: don’t use NULL as “struct device” for the DMA mapping API
- net: sh_eth: use correct “struct device” when calling DMA mapping functions
- arm64: dts: marvell: enable additional PCIe ports on Armada 8040 DB
- arm64: dts: marvell: add UART muxing on Armada 7K/8K
- Maxime Ripard (47)
- ARM: sunxi_defconfig: Enable CMA
- drm/sun4i: hdmi: Move the mode_valid callback to the encoder
- drm/sun4i: Fix error path handling
- ARM: dts: sun8i: a711: Reinstate the PMIC compatible
- ASoC: sun8i-codec: Add a comment on the LRCK inversion
- ASoC: sun8i-codec: Set the BCLK divider
- ASoC: sun8i-codec: Fix left and right channels inversion
- ASoC: sun8i-codec: Invert Master / Slave condition
- ARM: dts: sun8i: a711: Enable USB OTG
- ARM: dts: sun8i: a711: Add regulator support
- pinctrl: sunxi: Enforce the strict mode by default
- pinctrl: sunxi: Disable strict mode for old pinctrl drivers
- pinctrl: sunxi: Introduce the strict flag
- phy: Return NULL if the phy is optional
- drm/sun4i: tcon: Move out the tcon0 common setup
- drm/sun4i: tcon: Don’t rely on encoders to set the TCON mode
- drm/sun4i: tcon: Don’t rely on encoders to enable the TCON
- drm/sun4i: tcon: Make tcon_get_clk_delay mode argument const
- drm/sun4i: tcon: Make tcon_set_mux mode argument const
- drm/sun4i: Realign Makefile padding and reorder it
- clk: sunxi-ng: Add A83T display clocks
- drm/sun4i: Implement endpoint parsing using kfifo
- ARM: dts: sun9i: Change node names to remove underscores
- ARM: dts: sun9i: Change node names to remove underscores
- ARM: dts: sun4i: Remove underscores from nodes names
- ARM: dts: sun4i: Provide default muxing for relevant controllers
- ARM: dts: sun4i: Change pinctrl nodes to avoid warning
- ARM: dts: sun4i: Change LRADC node names to avoid warnings
- ARM: dts: sun4i: Remove skeleton and memory to avoid warnings
- ARM: dts: sun4i: Remove gpio-keys warnings
- ARM: dts: sun9i: cubieboard4: Remove card detect pull-up
- ARM: dts: sun9i: optimus: Remove card detect pull-up
- ARM: dts: sun9i: Rename pinctrl nodes to avoid warnings
- ARM: dts: sun9i: Remove GPIO pinctrl nodes to avoid warnings
- ARM: dts: sun9i: Remove skeleton to avoid warnings
- ARM: dts: sun4i: Remove all useless pinctrl nodes
- ARM: dts: sun4i: Rename thermal nodes to avoid warnings
- ARM: dts: sun4i: Remove SoC node unit-name to avoid warnings
- ARM: dts: sun4i: Change clock node names to avoid warnings
- ARM: dts: sun4i: Change framebuffer node names to avoid warnings
- ARM: dts: axp209: Rename usb_power_supply node to avoid warnings
- ARM: dts: sunxi: Remove leading zeros from unit-addresses
- arm: dts: sun8i: Add the TBS A711 tablet devicetree
- arm: dts: sun8i: a83t: Add the UART1 controller
- arm: dts: sun8i: a83t: Add MMC1 pins
- arm: dts: sun8i: a83t: Remove useless, empty nodes
- MAINTAINERS: sun4i-drm is now maintained in drm-misc
- Quentin Schulz (2)
- Miquel Raynal (17)
- mtd: Fix mtd_check_oob_ops()
- net: mvpp2: fix GOP statistics loop start and stop conditions
- net: mvpp2: add ethtool GOP statistics
- arm64: dts: marvell: armada-3720-espressobin: fill UART nodes
- arm64: dts: marvell: armada-3720-db: enable second UART port
- arm64: dts: marvell: armada-37xx: add second UART port
- arm64: dts: marvell: armada-37xx: add UART clock
- hwmon: (gpio-fan) Fix null pointer dereference at probe
- serial: mvebu-uart: support extended port registers layout
- serial: mvebu-uart: augment the maximum number of ports
- serial: mvebu-uart: dissociate RX and TX interrupts
- serial: mvebu-uart: use a generic way to access the registers
- pinctrl: dt-bindings: Fix A37xx uart2 group name
- mtd: nand: pxa3xx: enable NAND controller if the SoC needs it
- Documentation: devicetree: add pxa3xx compatible and syscon property
- arm64: defconfig: enable Marvell CP110 comphy
- mtd: nand: Use standard large page OOB layout when using NAND_ECC_NONE
Just a minor fix : the last rc9 (3.1) was in 2011 an not 2001.
Indeed, fixed! Thanks for spotting this mistake.
The link to Maxime Chevallier’s profile page is broken
I just tested the link, and it works for me. I don’t see any other edits in the blog post since I published it. Am i missing something ?
The link leads to “https://bootlin.com/blog/linux-4-15/company/staff/maxime-chevallier/” (notice the extra “blog/linux-4-15/” part).
Possibly some relative path issue?
P.s. FF 59.0.1 64-bit on Ubuntu 16.04
Indeed, it was some relative paths wrongly set. It should be fixed now, thanks for reporting!
Thank you all for you great work. Even thought I don’t directly use most of the hardware Bootlin works on, seeing that all this work is being put into making Linux better makes me a huge fan. Cheers!