Linux 7.0 was released earlier this week, and as usual we refer our readers to the excellent LWN articles that cover the major features brought by this new kernel version: part 1, part 2. We strongly encourage our readers to check out these articles, and we also recommend becoming an LWN.net subscriber to support their outstanding work documenting the Linux and open-source ecosystem.
Bootlin has also been very active in this Linux 7.0 release cycle, with 144 commits authored by Bootlin engineers in this release, placing us 17th among contributing organizations according to the Linux Kernel Patch Statistics, also putting Bootlin in the most active employers for Linux 7.0 according to LWN.net:
Also, in addition to authoring 144 commits, Bootlin engineers reviewed/merged 152 patches from other contributors: as the RTC and I3C subsystem maintainer, Alexandre Belloni merged 88 patches from other contributors, as the MTD subsystem co-maintainer, Miquèl Raynal merged 47 patches from other maintainers, Luca Ceresoli as a drm-misc co-maintainer merged 9 patches, and Grégory Clement as the Marvell platform maintainer merged 8 patches.
Now, looking at our contributions more closely, the main areas of work have been:
- Alexis Lothoré continued his work on the eBPF self tests, funded by the eBPF Foundation
- Bastien Curutchet contributed a number of improvements to the existing DSA driver supporting Microchip Ethernet switches. This was done in preparation for future work bringing PTP and PPS support to those switches.
- Benoît Monin contributed a number of improvements to the Designware I2C controller driver, to make it suitable for use on Mobileye platforms
- Grégory Clement implemented a small fix in the core Device Tree code
- Hervé Codina
- João Marcos Costa saw his very first Linux kernel patch merged, which makes the installation of the
cpupoweruser-space tool a bit more flexible - Luca Ceresoli continued his extensive work in the DRM subsystem to make display bridges hot-pluggable. He also improved the TI SN65DSI83 bridge driver.
- Maxime Chevallier finally saw his work introducing an Ethernet PHY representation merged
- Miquèl Raynal continued being very active in the MTD subsystem, most notably adding support for octal SPI NAND flash memories, but also significantly improving support for a number of flash memory chips from Winbond. Miquèl Raynal also did a large number of improvements on the Cadence QSPI controller driver, ultimately making it usable for the Renesas RZ/N1 platform
- Richard Genoud fixed a race condition in the qbman driver use on NXP Layerscape platforms
- Romain Gantois and Thomas Richard did some assorted fixes and improvements in various areas
added support for the GPIO and GPIO interrupts on the Renesas RZ/N1 platform
Below is a detailed breakdown of individual contributions:
- Alexis Lothoré (eBPF Foundation) (3):
- Bastien Curutchet (Schneider Electric) (10):
- net: dsa: microchip: Initialize IRQ’s mask outside common_setup()
- net: dsa: microchip: Use dynamic irq offset
- net: dsa: microchip: Use regs[] to access REG_PTP_CLK_CTRL
- net: dsa: microchip: Use regs[] to access REG_PTP_RTC_NANOSEC
- net: dsa: microchip: Use regs[] to access REG_PTP_RTC_SEC
- net: dsa: microchip: Use regs[] to access REG_PTP_RTC_SUB_NANOSEC
- net: dsa: microchip: Use regs[] to access REG_PTP_SUBNANOSEC_RATE
- net: dsa: microchip: Use regs[] to access REG_PTP_MSG_CONF1
- net: dsa: microchip: Wrap timestamp reading in a function
- net: dsa: microchip: Fix error path in PTP IRQ setup
- Benoît Monin (6):
- i2c: designware: Optimize flag reading in i2c_dw_read()
- i2c: designware: Sort compatible strings in alphabetical order
- i2c: designware: Add dedicated algorithm for AMD NAVI
- i2c: designware: Implement I2C_M_STOP support
- i2c: designware: Use runtime PM macro for auto-cleanup
- i2c: designware: Support of controller with IC_EMPTYFIFO_HOLD_MASTER disabled
- Gregory CLEMENT (1):
- Herve Codina (Schneider Electric) (8):
- dt-bindings: soc: renesas: Document RZ/N1 GPIO Interrupt Multiplexer
- ARM: dts: r9a06g032: Add GPIO controllers
- ARM: dts: r9a06g032: Add support for GPIO interrupts
- of/irq: Introduce for_each_of_imap_item
- of: unittest: Add a test case for for_each_of_imap_item iterator
- irqchip/ls-extirq: Use for_each_of_imap_item iterator
- irqchip/renesas-rza1: Use for_each_of_imap_item iterator
- soc: renesas: Add support for RZ/N1 GPIO Interrupt Multiplexer
- João Marcos Costa (1):
- Kory Maincent (TI.com) (2):
- Luca Ceresoli (41):
- drm/bridge: add drm_bridge_unplug() and drm_bridge_enter/exit()
- drm/bridge: ti-sn65dsi83: protect device resources on unplug
- drm/bridge: add of_drm_find_and_get_bridge()
- drm/bridge: deprecate of_drm_find_bridge()
- drm/todo: add entry about converting to of_drm_find_and_get_bridge()
- drm/bridge: make of_drm_find_bridge() a wrapper of of_drm_find_and_get_bridge()
- drm/arcpgu: convert to of_drm_find_and_get_bridge()
- drm/bridge: add next_bridge pointer to struct drm_bridge
- drm/bridge: ite-it66121: get/put the next bridge
- drm/bridge: imx8qxp-pixel-combiner: get/put the next bridge
- drm/bridge: simple-bridge: get/put the next bridge
- drm/meson: encoder_cvbs: get/put the next bridge
- drm/meson: encoder_dsi: get/put the next bridge
- drm/meson: encoder_hdmi: get/put the next bridge
- drm/bridge: imx8qxp-pxl2dpi: simplify put of device_node pointers
- drm/bridge: imx8qxp-pxl2dpi: remove excess error message
- drm/bridge: imx8qxp-pxl2dpi: imx8qxp_pxl2dpi_find_next_bridge: return int, not ERR_PTR
- drm/bridge: imx8qxp-pxl2dpi: get/put the next bridge
- drm/bridge: imx8qxp-pxl2dpi: get/put the companion bridge
- drm/bridge: imx8qxp-pixel-link: remove excess error message
- drm: of: drm_of_panel_bridge_remove(): fix device_node leak
- drm: of: drm_of_panel_bridge_remove(): convert to of_drm_find_and_get_bridge()
- drm/bridge: sii902x: convert to of_drm_find_and_get_bridge()
- drm/bridge: thc63lvd1024: convert to of_drm_find_and_get_bridge()
- drm/bridge: tfp410: convert to of_drm_find_and_get_bridge()
- drm/bridge: tpd12s015: convert to of_drm_find_and_get_bridge()
- drm/bridge: lt8912b: convert to of_drm_find_and_get_bridge()
- drm/bridge: imx8mp-hdmi-pvi: convert to of_drm_find_and_get_bridge()
- drm/bridge: imx8qxp-ldb: convert to of_drm_find_and_get_bridge()
- drm/bridge: samsung-dsim: samsung_dsim_host_attach: use a temporary variable for the next bridge
- drm/bridge: samsung-dsim: samsung_dsim_host_attach: don’t use the bridge pointer as an error indicator
- drm/bridge: samsung-dsim: samsung_dsim_host_attach: convert to of_drm_find_and_get_bridge()
- drm/bridge: dw-hdmi: convert to of_drm_find_and_get_bridge()
- drm/meson/dw-hdmi: convert to of_drm_find_and_get_bridge()
- drm/imx/dw-hdmi: convert to of_drm_find_and_get_bridge()
- drm/mediatek: mtk_hdmi*: convert to of_drm_find_and_get_bridge()
- drm/exynos: hdmi: convert to of_drm_find_and_get_bridge()
- drm: rcar-du: lvds: convert to of_drm_find_and_get_bridge()
- drm/bridge: fix kdoc syntax
- drm/bridge: ti-sn65dsi83: fix CHA_DSI_CLK_RANGE rounding
- drm/bridge: ti-sn65dsi83: halve horizontal syncs for dual LVDS output
- Maxime Chevallier (17):
- dt-bindings: net: Introduce the ethernet-connector description
- net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values
- net: phy: Introduce PHY ports representation
- net: phy: dp83822: Add support for phy_port representation
- dt-bindings: net: dp83822: Deprecate ti,fiber-mode
- net: phy: Create a phy_port for PHY-driven SFPs
- net: phy: Introduce generic SFP handling for PHY drivers
- net: phy: marvell-88×2222: Support SFP through phy_port interface
- net: phy: marvell: Support SFP through phy_port interface
- net: phy: marvell10g: Support SFP through phy_port
- net: phy: at803x: Support SFP through phy_port interface
- net: phy: qca807x: Support SFP through phy_port interface
- net: phy: Only rely on phy_port for PHY-driven SFP
- Documentation: networking: Document the phy_port infrastructure
- net: phy: initialize the port support based on the PHY’s for OF ports
- net: phy: phy_port: Cleanup the of-parsing logic for phy_port
- net: phy: phy_port: Correctly recompute the port’s linkmodes
- Miquel Raynal (33):
- spi: spi-mem: Make the DTR command operation macro more suitable
- spi: spi-mem: Create a repeated address operation
- spi: spi-mem: Limit octal DTR constraints to octal DTR situations
- spi: spi-mem: Create a repeated address operation
- mtd: spinand: Fix kernel doc
- mtd: spinand: Add missing check
- mtd: spinand: Remove stale definitions
- mtd: spinand: Use standard return values
- mtd: spinand: Decouple write enable and write disable operations
- mtd: spinand: Create an array of operation templates
- mtd: spinand: Make use of the operation templates through SPINAND_OP()
- mtd: spinand: macronix: Convert vendor specific operation to SPINAND_OP()
- mtd: spinand: winbond: Convert W25N specific operation to SPINAND_OP()
- mtd: spinand: winbond: Convert W35N specific operation to SPINAND_OP()
- mtd: spinand: List vendor specific operations and make sure they are supported
- mtd: spinand: macronix: Register vendor specific operation
- mtd: spinand: winbond: Register W25N vendor specific operation
- mtd: spinand: winbond: Register W35N vendor specific operation
- mtd: spinand: winbond: Fix style
- mtd: spinand: winbond: Rename IO_MODE register macro
- mtd: spinand: winbond: Configure the IO mode after the dummy cycles
- mtd: spinand: Gather all the bus interface steps in one single function
- mtd: spinand: Add support for setting a bus interface
- mtd: spinand: Propagate the bus interface across core helpers
- mtd: spinand: Give the bus interface to the configuration helper
- mtd: spinand: Warn if using SSDR-only vendor commands in a non SSDR mode
- mtd: spinand: Add octal DTR support
- mtd: spinand: winbond: W35N octal DTR support
- dt-bindings: mtd: st,spear600-smi: Fix description
- dt-bindings: mtd: st,spear600-smi: #address/size-cells is mandatory
- dt-bindings: mtd: st,spear600-smi: Fix example
- mtd: spi-nor: Fix RDCR controller capability core check
- mtd: spi-nor: Rename spi_nor_spimem_check_op()
- Miquel Raynal (Schneider Electric) (14):
- spi: dt-bindings: cdns,qspi-nor: Drop label in example
- spi: cadence-qspi: Align definitions
- spi: cadence-qspi: Fix style and improve readability
- spi: cadence-qspi: Fix ORing style and alignments
- spi: cadence-qspi: Remove an useless operation
- spi: cadence-qspi: Make sure we filter out unsupported ops
- spi: cadence-qspi: Fix probe error path and remove
- spi: cadence-qspi: Try hard to disable the clocks
- spi: cadence-qspi: Add a flag for controllers without indirect access support
- spi: cadence-qspi: Make sure write protection is disabled
- spi: cadence-qspi: Use a default value for cdns,fifo-width
- spi: dt-bindings: cdns,qspi-nor: Add Renesas RZ/N1D400 to the list
- spi: cadence-qspi: Kill cqspi_jh7110_clk_init
- spi: cadence-qspi: Add support for the Renesas RZ/N1 controller
- Richard Genoud (1):
- Romain Gantois (3):
- Thomas Richard (1):
- Thomas Richard (TI) (1):
- Thomas Richard (TI.com) (2):

