With the 4.19 released last week by Greg Kroah-Hartman (and not Linus), it’s time to have a look at our contributions for this release.
As always, LWN.net did an interesting coverage of this release cycle merge window, highlighting the most important changes: the first half of the 4.19 merge window and the rest of the 4.19 merge window. For 4.19 only, Bootlin contributed a total of 295 patches, which puts us at the 10th place in the ranking of most contributing companies according to KPS.
Also according to LWN statistics, Bootlin’s engineer Boris Brezillon is the 16th most active developer in terms of commits for this release with a total of 85.
The main highlights of our contributions are:
- For Marvell platforms:
- Antoine Ténart made a few fixes and improvements to the inside-secure cryptographic engine driver and contributed support for SHA512, SHA384 and eip197d. This crypto engine is used on Marvell Armada 3700 and 7K/8K,
- Maxime Chevallier added support for Receive Side Scaling (RSS), in the PPv2 Ethernet controller driver found on Marvell 7K and 8K platforms,
- Gregory Clement added support for Adaptative Voltage Scaling (AVS) used by DVFS and more specifically by CPUfreq on Armada 37xx platforms,
- Miquèl Raynal added support for suspend/resume in the pinctrl driver for Marvell Armada 37xx family,
- Miquèl Raynal added support for multi-channel sensor in the thermal driver for Marvell SoCs,
- Thomas Petazzoni fixed a few bugs found in the PCI mvebu controller driver,
- In the MTD subsystem:
- Boris Brezillon contributed the support for the MX35LF1GE4AB SPI NAND chip,
- Miquèl Raynal added the support for the MX35LF2GE4AB SPI NAND chip,
- Miquèl Raynal converted NAND drivers to the added nand_scan() hook,
- Miquèl Raynal and Boris Brezillon continued their cleanup of the NAND subsystem,
- For Microsemi Ocelot platforms:
- Alexandre Belloni added link aggregation hardware offload support to the Ethernet switch driver that was contributed in Linux 4.18,
- Antoine Ténart contributed VLAN support also in the Ethernet switch driver that was contributed in Linux 4.18,
- Alexandre Belloni added support for the SPI controllers,
- Quentin Schulz added support for the interrupt controller on GPIO pins,
- For Allwinner platforms:
- Boris Brezillon fixed an overflow in the dotclock driver of the Allwinner DRM driver,
- Paul Kocialkowski fixed an issue in the DRM driver on sun8i SoC family where planes untouched by an atomic commit are not displayed,
- Maxime Ripard added support for the C1 SRAM region on sun5i, sun7i and sun8i SoC families, which was needed to support the VPU (coming in future Linux kernel versions)
- Maxime Chevallier improved PIO transfers on the SPI imx driver to support non-multiple of 8
bits_per_word
anddynamic_burst
transfers,
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 93 patches from other contributors
- Boris Brezillon, as the MTD/NAND maintainer, merged 38 patches from other contributors
- Miquèl Raynal, as the NAND co-maintainer, merged 110 patches from other contributors
- Alexandre Belloni, as the RTC and Microsemi maintainer and Atmel platform co-maintainer, merged 38 patches from other contributors
- Grégory Clement, as the Marvell EBU co-maintainer, merged 16 patches from other contributors
Here is the commit by commit detail of our contributions to 4.19:
- Alexandre Belloni (27):
- dt-bindings: arm: remove PMC bindings
- dt-bindings: clk: at91: Document all the PMC compatibles
- ARM: at91: fix USB clock detection handling
- ARM: dts: fix PMC compatible
- rtc: ds1685: remove improper datetime access ABI
- rtc: ds1685: remove sysfs access to control registers
- net: mscc: ocelot: add bonding support
- pinctrl: ocelot: fix gpio4 twi function
- spi: dw: fix possible race condition
- spi: dw: allow providing own set_cs callback
- mips: mscc: build FIT image for Ocelot
- rtc: sa1100: don’t set PIE frequency
- rtc: sh: remove dead code
- rtc: remove rtc_irq_register/rtc_irq_unregister
- rtc: remove irq_task and irq_task_lock
- rtc: simplify rtc_irq_set_state/rtc_irq_set_freq
- rtc: unexport rtc_irq_set_*
- MIPS: TXx9: remove useless RTC definitions
- spi: dw: export dw_spi_set_cs
- spi: dw-mmio: add MSCC Ocelot support
- spi: dw: document Microsemi integration
- mips: dts: mscc: Add spi on Ocelot
- mips: dts: mscc: enable spi and NOR flash support on ocelot PCB123
- char: rtc: remove task handling
- rtc: remove struct rtc_task
- soc: fsl: qbman: qman: avoid allocating from non existing gen_pool
- clocksource/drivers/timer-atmel-pit: Properly handle error cases
- Antoine Tenart (35):
- crypto: inside-secure – use the error handler for invalidation requests
- crypto: inside-secure – improve the counter computation
- crypto: sha512_generic – add a sha512 0-length pre-computed hash
- crypto: inside-secure – sha512 support
- crypto: inside-secure – hmac(sha512) support
- crypto: inside-secure – authenc(hmac(sha512), cbc(aes)) support
- crypto: sha512_generic – add a sha384 0-length pre-computed hash
- crypto: inside-secure – sha384 support
- crypto: inside-secure – hmac(sha384) support
- crypto: inside-secure – authenc(hmac(sha384), cbc(aes)) support
- net: mscc: ocelot: add VLAN filtering
- crypto: inside-secure – move the firmware to a better location
- crypto: inside-secure – use precise compatibles
- Documentation/bindings: crypto: inside-secure: update the compatibles
- crypto: inside-secure – filter out the algorithms by engine
- crypto: inside-secure – add an invalidation flag
- crypto: inside-secure – eip197d support
- Documentation/bindings: crypto: inside-secure: eip197d support
- net: mvpp2: explicitly include linux/interrupt.h
- net: mvpp2: fix a typo in the RSS code
- net: mvpp2: RSS indirection table support
- net: mvpp2: improve the distribution of packets on CPUs when using RSS
- arm64: dts: marvell: armada-cp110: update the crypto engine compatible
- arm64: dts: marvell: armada-37xx: update the crypto engine compatible
- net: mvpp2: switch to SPDX identifiers
- net: mscc: simplify retrieving the tag type from the frame header
- crypto: inside-secure – switch to SPDX identifiers
- crypto: inside-secure – initialize first_rdesc to make GCC happy
- phy: mvebu-cp110-comphy: switch to SPDX identifier
- net: mvpp2: let phylink manage the carrier state
- net: mvpp2: fix a txq_done race condition
- net: mvneta: fix the Rx desc buffer DMA unmapping
- net: mscc: fix the frame extraction into the skb
- MAINTAINERS: update the Annapurna Labs maintainer email
- net: mvneta: fix the remaining Rx descriptor unmapping issues
- Boris Brezillon (86):
- mtd: m25p80: Remove unneeded m25p->command field
- mtd: m25p80: Use SPI_MEM_OP_NO_DUMMY instead of SPI_MEM_OP_DUMMY(0, x)
- MAINTAINERS: Remove the AT91 clk driver entry
- mtd: rawnand: micron: Update ecc_stats.corrected
- drm/writeback: Fix the “overview” section of the doc
- drm/atomic: Avoid connector to writeback_connector casts
- drm/connector: Pass a drm_connector_state to ->atomic_commit()
- drm/connector: Make ->atomic_commit() optional
- drm/vc4: Use wait_for_flip_done() instead of wait_for_vblanks()
- drm/crtc: Add a generic infrastructure to fake VBLANK events
- drm/atomic: Call fake_vblank() from the generic commit_tail() helpers
- drm/vc4: Call drm_atomic_helper_fake_vblank() in the commit path
- drm/vc4: Add support for the transposer block
- ARM: dts: bcm283x: Add Transposer block
- drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL
- drm/panel: Let of_drm_find_panel() return -ENODEV when the panel is disabled
- drm/of: Make drm_of_find_panel_or_bridge() fail when the device is disabled
- drm/vc4: Support the case where the DSI device is disabled
- dt-bindings: Add bindings for SPI NAND devices
- mtd: spinand: Add initial support for the MX35LF1GE4AB chip
- mtd: rawnand: gpmi: Remove useless dependency on MTD_NAND
- mtd: rawnand: Add ‘depends on HAS_IOMEM’ where missing
- mtd: rawnand: omap2: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: sharpsl: Remove inclusion of mach and asm headers
- mtd: rawnand: sharpsl: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: lpc32xx: Allow selection of these drivers when COMPILE_TEST=y
- mtd: rawnand: brcmnand: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: mxc: Avoid inclusion of asm/mach headers
- mtd: rawnand: mxc: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: qcom: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: nuc900: Allow selection of this driver when COMPILE_TEST=y
- bcma: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: Kill cafe_nand_bug()
- mtd: rawnand: Remove nand_do_read() prototype from rawnand.h
- mtd: rawnand: Remove forward declaration of mtd_info
- mtd: rawnand: Remove forward declaration of device_node
- mtd: rawnand: Rename nand_default_bbt() into nand_create_bbt()
- mtd: rawnand: Kill the chip->scan_bbt() hook
- mtd: rawnand: orion_nand: Kill orion_nand_data.dev_ready()
- mtd: rawnand: plat_nand: Kill pdata->ctrl.{hwcontrol, read_byte}()
- mtd: rawnand: hynix: Use ->exec_op() in hynix_nand_reg_write_op()
- mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int
- mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call
- mtd: rawnand: atmel: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions
- mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones
- mtd: rawnand: davinci: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition
- mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte()
- mtd: rawnand: sunxi: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS
- mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones
- mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y
- memory: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs
- mtd: rawnand: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y
- MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9
- mtd: rawnand: txx9ndfmc: Allow selection of this driver when COMPILE_TEST=y
- MIPS: jz4740: Move jz4740_nand.h header to include/linux/platform_data/jz4740
- mtd: rawnand: jz4740: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
- mtd: Make Kconfig formatting consistent
- mtd: rawnand: jz4740: Use the proper format specifier to print chipnr
- memory: jz4780-nemc: Allow selection of this driver when COMPILE_TEST=y
- mtd: rawnand: fsmc: Stop using chip->read_buf()
- mtd: rawnand: micron: Fix on-die ECC detection logic
- mtd: rawnand: Expose _notsupp() helpers for raw page accessors
- mtd: rawnand: micron: Get the actual number of bitflips
- mtd: rawnand: micron: Avoid enabling/disabling ECC when it can’t be disabled
- mtd: rawnand: micron: Make ECC activation stateful
- mtd: rawnand: orion: Avoid direct inclusion of asm headers
- mtd: rawnand: orion: Handle cases where __LINUX_ARM_ARCH__ is not defined
- mtd: rawnand: s3c2410: Error out when ->nrsets < 0 or ->sets == NULL
- mtd: rawnand: Remove unused caller_is_module() definition
- mtd: rawnand: jz4740: Include gpio/consumer.h instead of gpio.h
- mtd: rawnand: sunxi: Remove gpio.h and of_gpio.h inclusions
- mtd: rawnand: atmel: Stop including gpio.h
- mtd: rawnand: au1550nd: Remove unneeded gpio.h inclusion
- mtd: spi-nor: atmel-quadspi: Include gpio/consumer.h instead of gpio.h
- spi: spi-mem: Constify spi_mem->name
- mtd: rawnand: atmel: Select GENERIC_ALLOCATOR
- drm/vc4: Fix the “no scaling” case on multi-planar YUV formats
- mtd: devices: m25p80: Make sure the buffer passed in op is DMA-able
- spi: spi-mem: Add missing description for data.nbytes field
- spi: spi-mem: Move the DMA-able constraint doc to the kerneldoc header
- drm/sun4i: Fix an ulong overflow in the dotclock driver
- Gregory CLEMENT (10):
- arm64: dts: marvell: armada-37xx: add the node allowing AVS support
- clk: mvebu: armada-37xx-periph: switch to SPDX license identifier
- dt-bindings: marvell: Add documentation for the Armada 3700 AVS binding
- cpufreq: armada-37xx: Add AVS support
- ARM: multi_v7_defconfig: Add Marvell NAND controller support
- clk: mvebu: armada-37xx-periph: Fix wrong return value in get_parent
- net: mvneta: remove data pointer usage from device_node structure
- net: mvneta: discriminate error cause for missed packet
- net: mvneta: Allocate page for the descriptor
- net: mscc: ocelot: Fix comment in ocelot_vlant_wait_for_completion()
- Maxime Chevallier (28):
- net: mvpp2: Make TX / RX descriptors little-endian
- net: mvpp2: prs: Drop unions representing TCAM and SRAM entries
- net: mvpp2: prs: Drop unnecessary swab16 in vlan detection
- net: mvpp2: Use htons when checking protocol info
- net: mvpp2: fix include guards in mvpp2_prs.h
- net: mvpp2: define the number of RSS entries per table in mvpp2.h
- net: mvpp2: make sure we use single queue mode on PPv2.1
- net: mvpp2: make multi queue mode the default mode
- net: mvpp2: fix hardcoded number of rx queues
- net: mvpp2: use only one rx queue per port per CPU
- net: mvpp2: fix RSS register definitions
- net: mvpp2: use one RSS table per port
- net: mvpp2: make sure we don’t spread load on disabled CPUs
- net: mvpp2: rename per-port RSS init function
- net: mvpp2: use classifier to assign default rx queue
- net: mvpp2: split ingress traffic into multiple flows
- net: mvpp2: add an RSS classification step for each flow
- net: mvpp2: allow setting RSS flow hash parameters with ethtool
- net: mvpp2: add a debugfs interface for the Header Parser
- net: mvpp2: debugfs: add hit counter stats for Header Parser entries
- net: mvpp2: debugfs: add entries for classifier flows
- net: mvpp2: debugfs: add classifier hit counters
- spi: imx: Remove duplicate variable assignments
- spi: imx: Use dynamic bursts only when bits_per_word is 8, 16 or 32
- spi: imx: Use correct number of bytes per words
- spi: imx: remove unnecessary check in spi_imx_can_dma
- spi: imx: Use the longuest possible burst size when in dynamic_burst
- net: mvpp2: Extract the correct ethtype from the skb for tx csum offload
- Maxime Ripard (10):
- drm/vc4: plane: Expand the lower bits by repeating the higher bits
- dt-bindings: panel: Add the Ilitek ILI9881c panel documentation
- drm/panel: Add Ilitek ILI9881c panel driver
- drivers: soc: sunxi: Add support for the C1 SRAM region
- ARM: dts: sun5i: Add support for the C1 SRAM region with the SRAM controller
- ARM: dts: sun7i: Add support for the C1 SRAM region with the SRAM controller
- ARM: dts: sun8i: a23-a33: Add SRAM controller node and C1 SRAM region
- drm/sun4i: tcon-top: Fix return type warning
- soc: sunxi: Add the A13, A23 and H3 system control compatibles
- ARM: dts: sun5i: Fix the SRAM A3-A4 declaration
- Miquel Raynal (72):
- pinctrl: armada-37xx: add suspend/resume support
- mtd: spinand: macronix: Add support for MX35LF2GE4AB
- mtd: rawnand: docg4: fix the probe function error path
- mtd: rawnand: fix indentation in Kconfig
- mtd: Fallback to ->_read/write() when ->_read/write_oob() is missing
- mtd: adapt misleading comment in mtd_oob_ops structure
- mtd: rawnand: add default values for dynamic timings
- thermal: armada: add a function that sanitizes the thermal zone name
- thermal: armada: remove useless register accesses
- thermal: armada: remove misleading comments
- thermal: armada: rename the initialization routine
- thermal: armada: dissociate a380 and cp110 ->init() hooks
- thermal: armada: average over samples to avoid glitches
- thermal: armada: convert driver to syscon register accesses
- thermal: armada: use the resource managed registration helper alternative
- thermal: armada: add multi-channel sensors support
- thermal: armada: remove sensors validity from the IP initialization
- thermal: armada: move validity check out of the read function
- thermal: armada: get rid of the ->is_valid() pointer
- dt-bindings: cp110: rename cp110 syscon file
- dt-bindings: ap806: prepare the syscon file to list other syscons nodes
- dt-bindings: cp110: prepare the syscon file to list other syscons nodes
- dt-bindings: ap806: add the thermal node in the syscon file
- dt-bindings: cp110: update documentation since DT de-duplication
- dt-bindings: cp110: add the thermal node in the syscon file
- dt-bindings: thermal: armada: add reference to new bindings
- mtd: rawnand: make subop helpers return unsigned values
- mtd: rawnand: better name for the controller structure
- mtd: rawnand: add hooks that may be called during nand_scan()
- mtd: rawnand: davinci: convert driver to nand_scan()
- mtd: rawnand: denali: convert to nand_scan()
- mtd: rawnand: fsl_elbc: return meaningful values
- mtd: rawnand: fsl_elbc: convert driver to nand_scan()
- mtd: rawnand: fsl_ifc: convert driver to nand_scan()
- mtd: rawnand: fsmc: convert driver to nand_scan()
- mtd: rawnand: gpmi: convert driver to nand_scan()
- mtd: rawnand: hisi504: convert driver to nand_scan()
- mtd: rawnand: jz4780: convert driver to nand_scan()
- mtd: rawnand: lpc32xx_slc: convert driver to nand_scan()
- mtd: rawnand: marvell: convert driver to nand_scan()
- mtd: rawnand: mtk: convert driver to nand_scan()
- mtd: rawnand: mxc: convert driver to nand_scan()
- mtd: rawnand: nandsim: convert driver to nand_scan()
- mtd: rawnand: s3c2410: convert driver to nand_scan()
- mtd: rawnand: sh_flctl: convert driver to nand_scan()
- mtd: rawnand: sunxi: convert driver to nand_scan()
- mtd: rawnand: tango: convert driver to nand_scan()
- mtd: rawnand: txx9ndfmc: rename nand controller internal structure
- mtd: rawnand: vf610: convert driver to nand_scan()
- mtd: rawnand: sm_common: fix the probe function error path
- mtd: rawnand: sm_common: convert driver to nand_scan_with_ids()
- mtd: rawnand: qcom: convert driver to nand_scan()
- mtd: rawnand: brcmnand: convert driver to nand_scan()
- mtd: rawnand: cafe: convert driver to nand_scan()
- mtd: rawnand: lpc32xx_mlc: convert driver to nand_scan()
- mtd: rawnand: omap2: convert driver to nand_scan()
- mtd: rawnand: atmel: clarify NAND addition/removal paths
- mtd: rawnand: atmel: convert driver to nand_scan()
- mtd: rawnand: do not execute nand_scan_ident() if maxchips is zero
- mtd: rawnand: docg4: convert driver to nand_scan()
- mtd: rawnand: jz4740: fix probe function error path
- mtd: rawnand: jz4740: group nand_scan_{ident, tail} calls
- mtd: rawnand: jz4740: convert driver to nand_scan()
- mtd: rawnand: tegra: convert driver to nand_scan()
- mtd: rawnand: txx9ndfmc: clarify ECC parameters assignation
- mtd: rawnand: txx9ndfmc: convert driver to nand_scan()
- mtd: rawnand: do not export nand_scan_[ident|tail]() anymore
- mtd: rawnand: allocate model parameter dynamically
- mtd: rawnand: allocate dynamically ONFI parameters during detection
- MAINTAINERS: drop Wenyou Yang from Atmel NAND driver support
- mtd: rawnand: marvell: prevent harmless warnings
- mtd: partitions: fix unbalanced of_node_get/put()
- Paul Kocialkowski (9):
- dt-bindings: sram: sunxi: Introduce new A10 binding for system-control
- soc: sunxi: sram: Add dt match for the A10 system-control compatible
- dt-bindings: sram: sunxi: Add A13, A20, A23 and H3 dedicated bindings
- dt-bindings: sram: sunxi: Populate valid sections compatibles
- ARM: dts: sun4i: Switch to new system control compatible string
- ARM: dts: sun5i: Use most-qualified system control compatibles
- ARM: dts: sun7i: Use most-qualified system control compatibles
- ARM: dts: sun8i: h3: Add SRAM controller node and C1 SRAM region
- drm/sun4i: sun8i: Avoid clearing blending order at each atomic commit
- Quentin Schulz (7):
- MIPS: mscc: ocelot: fix length of memory address space for MIIM
- MIPS: mscc: ocelot: add MIIM1 bus
- net: phy: mscc: the extended page access register is 16 bits
- MIPS: mscc: ocelot: add interrupt controller properties to GPIO controller
- pinctrl: ocelot: add support for interrupt controller
- ubi: provide a way to skip CRC checks
- ubi: expose the volume CRC check skip flag
- Thomas Petazzoni (11):
- PCI: aardvark: Introduce an advk_pcie_valid_device() helper
- PCI: aardvark: Convert to use pci_host_probe()
- mips: use asm-generic version of msi.h
- PCI: mvebu: Remove redundant platform_set_drvdata() call
- PCI: mvebu: Fix I/O space end address calculation
- PCI: mvebu: Only remap I/O space if configured
- PCI: mvebu: Use resource_size() to remap I/O space
- PCI: mvebu: Convert to use pci_host_bridge directly
- PCI: mvebu: Drop bogus comment above mvebu_pcie_map_registers()
- ARM: 8799/1: mm: fix pci_ioremap_io() offset check
- PCI: mvebu: Fix PCI I/O mapping creation sequence