Linux 6.12 has been released during the past week-end, pretty much as expected after 7 release candidates. As usual, we recommend our readers to go through the amazing LWN.net articles covering the 6.12 merge window (part 1, part 2) to get a high-level overview of the major new features and improvements in this 6.12 release. One of the prominent improvement in this release, as far as the embeded industry is concerned, is obviously the merge of the final bits enabling PREEMPT_RT… which already caused our Real-Time Linux with PREEMPT_RT training course to be updated.
As usual, Bootlin again contributed to this release: with 118 commits merged, we are again in the top 20 contributing companies! Also, in addition to contributing our own code, several of our engineers are also maintainers, and as part of this work those engineers review and merge patches from other contributors. As part of this effort, for this 6.12 release:
- Alexandre Belloni, as the RTC and I3C subsystems maintainer, merged 29 patches from other contributors
- Miquèl Raynal, as the MTD subsystem co-maintainer, merged 24 patches from other contributors
- Grégory Clement, as the Marvell platform maintainer, merged 4 patches from other contributors
Overall, 13 active Bootlin engineers made contributions to this release, which on a total staff of 24 people, means that more than half of our team has contributed to the Linux kernel for 6.12, a good indication of our strong focus on Linux kernel development and upstreaming!
Now looking at our contributions to 6.12, from a high-level:
- Hervé Codina was our most prolific contributor, with 38 patches. Hervé has put the final touch to a massive effort aiming at supporting a very complex audio topology on fairly old Freescale/NXP platforms. This last bits of work have been focused on improving the drivers he had submitted to
drivers/soc/fsl/qe
to also support the MPC8312 processor, which has a slightly different QMC hardware block. We hope to publish soon a very detailed blog post on this work that spanned over several years and finally came to an end with these last patches! - Maxime Chevallier was the second most prolific contributor, with 25 patches merged. He mostly got his Ethernet PHY topology work merged, which he had presented on at Netdev last year and at Linux Plumbers this year. He also converted the
fs_enet
Ethernet MAC driver to the phylink API. - Miquèl Raynal was (as usual) active on the MTD subsystem, where he was mostly focused on improving the SPI NAND subsystem to support continuous read. Continuous read is an optimization that allows to improve the performance when reads from contiguous pages are made. The cover letter states: overall the speed gains are impressive: up to 45% when reading a block in 1-1-4 mode, where a substantial time is lost waiting for the chip to be ready.
- Luca Ceresoli got his improvements to the
dapm-graph
anddecode_stacktrace.sh
tools merged. - Thomas Bonnefille, who worked as an engineering intern at Bootlin and recently joined as a full-time employee, saw his very first Linux kernel driver merged, an IIO driver for the ADC found in Sophgo RISC-V processors: drivers/iio/adc/sophgo-cv1800b-adc.c.
- Thomas Richard improved power management support in the PCI code used on Texas Instruments platforms.
- Théo Lebrun managed to get the pinctrl and reset drivers for the Mobileye EyeQ MIPS processors merged. He also worked with Thomas Richard on the Texas Instruments PCI power management effort.
- Alexis Lothoré did quite a bit of work on eBPF tests, funded by the eBPF Foundation: he converted
test_xdp_veth
,test_dev_cgroup
,get_current_cgroup_id_user
,test_cgroup_stroage
andtest_skb_cgroup_id_user
to the test_progs infrastructure. - Romain Gantois made a single contribution, but it adds a new feature to the TI TLV320AIC31xx audio codec driver. This feature allows to load filter coefficients from a firmware file, providing the ability to fine-tune the codec configuration.
- Alexandre Belloni, Bastien Curutchet, Köry Maincent and Louis Chauvet also got a small number of patches merged, mostly fixes or small improvements. A patch from Clément Léger, who left Bootlin more than a year ago, also made its way upstream.
Here is the complete details of our 118 contributions to this kernel release:
- Alexandre Belloni (1):
- Alexis Lothoré (eBPF Foundation) (9):
- selftests/bpf: Update xdp_redirect_map prog sections for libbpf
- selftests/bpf: Integrate test_xdp_veth into test_progs
- selftests/bpf: do not disable /dev/null device access in cgroup dev test
- selftests/bpf: convert test_dev_cgroup to test_progs
- selftests/bpf: add wrong type test to cgroup dev
- selftests/bpf: convert get_current_cgroup_id_user to test_progs
- selftests/bpf: convert test_cgroup_storage to test_progs
- selftests/bpf: add proper section name to bpf prog and rename it
- selftests/bpf: convert test_skb_cgroup_id_user to test_progs
- Bastien Curutchet (2):
- Clément Léger (1):
- Herve Codina (38):
- soc: fsl: cpm1: qmc: Update TRNSYNC only in transparent mode
- soc: fsl: cpm1: qmc: Enable TRNSYNC only when needed
- soc: fsl: cpm1: tsa: Fix tsa_write8()
- soc: fsl: cpm1: tsa: Use BIT(), GENMASK() and FIELD_PREP() macros
- soc: fsl: cpm1: tsa: Fix blank line and spaces
- soc: fsl: cpm1: tsa: Add missing spinlock comment
- dt-bindings: soc: fsl: cpm_qe: Add QUICC Engine (QE) TSA controller
- soc: fsl: cpm1: tsa: Remove unused registers offset definition
- soc: fsl: cpm1: tsa: Use ARRAY_SIZE() instead of hardcoded integer values
- soc: fsl: cpm1: tsa: Make SIRAM entries specific to CPM1
- soc: fsl: cpm1: tsa: Introduce tsa_setup() and its CPM1 compatible version
- soc: fsl: cpm1: tsa: Isolate specific CPM1 part from tsa_serial_{dis}connect()
- soc: fsl: cpm1: tsa: Introduce tsa_version
- soc: fsl: cpm1: tsa: Add support for QUICC Engine (QE) implementation
- MAINTAINERS: Add QE files related to the Freescale TSA controller
- soc: fsl: cpm1: tsa: Introduce tsa_serial_get_num()
- soc: fsl: cpm1: qmc: Rename QMC_TSA_MASK
- soc: fsl: cpm1: qmc: Use BIT(), GENMASK() and FIELD_PREP() macros
- soc: fsl: cpm1: qmc: Fix blank line and spaces
- soc: fsl: cpm1: qmc: Remove unneeded parenthesis
- soc: fsl: cpm1: qmc: Fix ‘transmiter’ typo
- soc: fsl: cpm1: qmc: Add missing spinlock comment
- dt-bindings: soc: fsl: cpm_qe: Add QUICC Engine (QE) QMC controller
- soc: fsl: cpm1: qmc: Introduce qmc_data structure
- soc: fsl: cpm1: qmc: Re-order probe() operations
- soc: fsl: cpm1: qmc: Introduce qmc_init_resource() and its CPM1 version
- soc: fsl: cpm1: qmc: Introduce qmc_{init,exit}_xcc() and their CPM1 version
- soc: fsl: cpm1: qmc: Rename qmc_chan_command()
- soc: fsl: cpm1: qmc: Handle RPACK initialization
- soc: fsl: cpm1: qmc: Rename SCC_GSMRL_MODE_QMC
- soc: fsl: cpm1: qmc: Introduce qmc_version
- soc: fsl: qe: Add resource-managed muram allocators
- soc: fsl: qe: Add missing PUSHSCHED command
- soc: fsl: cpm1: qmc: Add support for QUICC Engine (QE) implementation
- soc: fsl: cpm1: qmc: Handle QUICC Engine (QE) soft-qmc firmware
- MAINTAINERS: Add QE files related to the Freescale QMC controller
- soc: fsl: qe: ucc: Export ucc_mux_set_grant_tsa_bkpt
- soc: fsl: cpm1: qmc: Fix unused data compilation warning
- Kory Maincent (3):
- Louis Chauvet (1):
- Luca Ceresoli (6):
- ASoC: dapm-graph: remove the “ROOT” cluster
- ASoC: dapm-graph: visualize component On/Off bias level
- ASoC: dapm-graph: show path name for non-static routes
- scripts/decode_stacktrace.sh: remove find_module recursion and improve error reporting
- scripts/decode_stacktrace.sh: clarify command line
- scripts/decode_stacktrace.sh: add ‘-h’ flag
- Maxime Chevallier (25):
- net: phy: Introduce ethernet link topology representation
- net: sfp: pass the phy_device when disconnecting an sfp module’s PHY
- net: phy: add helpers to handle sfp phy connect/disconnect
- net: sfp: Add helper to return the SFP bus name
- net: ethtool: Allow passing a phy index for some commands
- netlink: specs: add phy-index as a header parameter
- net: ethtool: Introduce a command to list PHYs on an interface
- netlink: specs: add ethnl PHY_GET command set
- net: ethtool: plca: Target the command to the requested PHY
- net: ethtool: pse-pd: Target the command to the requested PHY
- net: ethtool: cable-test: Target the command to the requested PHY
- net: ethtool: strset: Allow querying phy stats by index
- Documentation: networking: document phy_link_topology
- net: ethtool: cable-test: Release RTNL when the PHY isn’t found
- net: ethernet: fs_enet: convert to SPDX
- net: ethernet: fs_enet: cosmetic cleanups
- net: ethernet: fs_enet: drop the .adjust_link custom fs_ops
- net: ethernet: fs_enet: only protect the .restart() call in .adjust_link
- net: ethernet: fs_enet: drop unused phy_info and mii_if_info
- net: ethernet: fs_enet: use macros for speed and duplex values
- net: ethernet: fs_enet: simplify clock handling with devm accessors
- net: ethernet: fs_enet: phylink conversion
- net: ethtool: phy: Check the req_info.pdn field for GET commands
- net: ethtool: phy: Don’t set the context dev pointer for unfiltered DUMP
- net: ethernet: fs_enet: Make the per clock optional
- Miquel Raynal (14):
- mtd: nand: Rename the NAND IO iteration helper
- mtd: nand: Introduce a block iterator
- mtd: spi-nand: Isolate the MTD read logic in a helper
- mtd: spi-nand: Add continuous read support
- mtd: spi-nand: Expose spinand_write_reg_op()
- mtd: spi-nand: macronix: Fix helper name
- mtd: spi-nand: macronix: Extract the bitflip retrieval logic
- mtd: spi-nand: macronix: Add a possible bitflip status flag
- mtd: spi-nand: macronix: Continuous read support
- mtd: rawnand: meson: Fix typo in function name
- mtd: rawnand: mtk: Factorize out the logic cleaning mtk chips
- mtd: rawnand: mtk: Fix init error path
- ASoC: dt-bindings: davinci-mcasp: Fix interrupts property
- ASoC: dt-bindings: davinci-mcasp: Fix interrupt properties
- Romain Gantois (1):
- Thomas Bonnefille (4):
- Thomas Richard (5):
- Théo Lebrun (8):
- dt-bindings: usb: ti,j721e-usb: fix compatible list
- Revert “dt-bindings: pinctrl: mobileye,eyeq5-pinctrl: add bindings”
- pinctrl: eyeq5: add platform driver
- arm64: dts: ti: k3-am64: add USB fallback compatible to J721E
- Revert “dt-bindings: reset: mobileye,eyeq5-reset: add bindings”
- reset: eyeq: add platform driver
- PCI: j721e: Add reset GPIO to struct j721e_pcie
- PCI: j721e: Add suspend and resume support