Linus Torvalds just released Linux 4.5, for which the major new features have been described by LWN.net in three articles: part 1, part 2 and part 3. On a total of 12080 commits, Bootlin contributed 121 patches, almost exactly 1% of the total. Due to its large number of contribution by patch number, Bootlin engineer Boris Brezillon appears in the statistics of top-contributors for the 4.5 kernel in the LWN.net statistics article.
This time around, our important contributions were:
- Addition of a driver for the Microcrystal rv1805 RTC, by Alexandre Belloni.
- A huge number of patches touching all NAND controller drivers and the MTD subsystem, from Boris Brezillon. They are the first step of a more general rework of how NAND controllers and NAND chips are handled in the Linux kernel. As Boris explains in the cover letter, his series aims at clarifying the relationship between the mtd and nand_chip structures and hiding NAND framework internals to NAND. […]. This allows removal of some of the boilerplate code done in all NAND controller drivers, but most importantly, it unifies a bit the way NAND chip structures are instantiated.
- On the support for the Marvell ARM processors:
- In the mvneta networking driver (used on Armada 370, XP, 38x and soon on Armada 3700): addition of naive RSS support with per-CPU queues, configure XPS support, numerous fixes for potential race conditions.
- Fix in the Marvell CESA driver
- Misc improvements to the mv_xor driver for the Marvell XOR engines.
- After four years of development the 32-bits Marvell EBU platform support is now pretty mature and the majority of patches for this platform now are improvements of existing drivers or bug fixes rather than new hardware support. Of course, the support for the 64-bits Marvell EBU platform has just started, and will require a significant number of patches and contributions to be fully supported upstream, which is an on-going effort.
- On the support for the Atmel ARM processors:
- Addition of the support for the L+G VInCo platform.
- Improvement to the macb network driver to reset the PHY using a GPIO.
- Fix Ethernet PHY issues on Atmel SAMA5D4
- On the support for Allwinner ARM processors:
- Implement audio capture in the sun4i audio driver.
- Add the support for a special pin controller available on Allwinner A80.
The complete list of our contributions:
- Alexandre Belloni (11):
- clk: at91: Revert “keep slow clk enabled to prevent system hang”
- of: Add vendor prefix for QiaoDian Xianshi
- ARM: mxs: dt: cfa10057: fix backlight PWM
- Merge tag ‘ib-mfd-regulator-rtc-v4.5’ into rtc-next
- rtc: abx80x: Add Microcrystal rv1805 support
- rtc: abx80x: add alarm support
- clockevents/tcb_clksrc: Prevent disabling an already disabled clock
- ARM: dts: at91: at91sam9n12ek: fix panel compatible string
- ARM: dts: at91: sama5d4 xplained: properly mux phy interrupt
- phy: micrel: Ensure interrupts are reenabled on resume
- phy: micrel: Disable auto negotiation on startup
- Antoine Tenart (1):
- Boris BREZILLON (81):
- mtd: nand: convert to nand_get_flash_node()
- mtd: nand: fix drivers abusing mtd->priv
- mtd: nand: add an mtd_to_nand() helper
- doc: mtd: nand: update examples to use mtd_to_nand()
- mtd: nand: fix ONFI parameter page layout
- ARM: nand: make use of mtd_to_nand() where appropriate
- sh: nand: make use of mtd_to_nand() where appropriate
- mtd: nand: make use of mtd_to_nand() in NAND core code
- staging: mt29f_spinand: make use of mtd_to_nand()
- mtd: nand: make use of mtd_to_nand() in NAND drivers
- mtd: nand: embed an mtd_info structure into nand_chip
- mtd: nand: add nand_to_mtd() helper
- cris: nand: make use of mtd_to_nand() where appropriate
- blackfin: nand: make use of mtd_to_nand() where appropriate
- mips: nand: make use of mtd_to_nand() where appropriate
- mtd: nand: denali: add missing nand_release() call in denali_remove()
- mtd: nand: fsmc: create and use mtd_to_fsmc()
- mtd: nand: nuc900: create and use mtd_to_nuc900()
- mtd: nand: omap2: create and use mtd_to_omap()
- mtd: nand: ams-delta: use the mtd instance embedded in struct nand_chip
- mtd: nand: atmel: use the mtd instance embedded in struct nand_chip
- mtd: nand: au1550nd: use the mtd instance embedded in struct nand_chip
- mtd: nand: bf5xx: use the mtd instance embedded in struct nand_chip
- mtd: nand: brcm: use the mtd instance embedded in struct nand_chip
- mtd: nand: cafe: use the mtd instance embedded in struct nand_chip
- mtd: nand: cs553x: use the mtd instance embedded in struct nand_chip
- mtd: nand: cmx270: use the mtd instance embedded in struct nand_chip
- mtd: nand: davinci: use the mtd instance embedded in struct nand_chip
- mtd: nand: diskonchip: use the mtd instance embedded in struct nand_chip
- mtd: nand: docg4: use the mtd instance embedded in struct nand_chip
- mtd: nand: fsl_elbc: use the mtd instance embedded in struct nand_chip
- mtd: nand: fsl_ifc: use the mtd instance embedded in struct nand_chip
- mtd: nand: fsl_upm: use the mtd instance embedded in struct nand_chip
- mtd: nand: fsmc: use the mtd instance embedded in struct nand_chip
- mtd: nand: gpio: use the mtd instance embedded in struct nand_chip
- mtd: nand: gpmi: use the mtd instance embedded in struct nand_chip
- mtd: nand: hisi504: use the mtd instance embedded in struct nand_chip
- mtd: nand: jz4740: use the mtd instance embedded in struct nand_chip
- mtd: nand: lpc32xx: use the mtd instance embedded in struct nand_chip
- mtd: nand: mpc5121: use the mtd instance embedded in struct nand_chip
- mtd: nand: mxc: use the mtd instance embedded in struct nand_chip
- mtd: nand: nandsim: use the mtd instance embedded in struct nand_chip
- mtd: nand: ndfc: use the mtd instance embedded in struct nand_chip
- mtd: nand: nuc900: use the mtd instance embedded in struct nand_chip
- mtd: nand: omap2: use the mtd instance embedded in struct nand_chip
- mtd: nand: orion: use the mtd instance embedded in struct nand_chip
- mtd: nand: pasemi: use the mtd instance embedded in struct nand_chip
- mtd: nand: plat: use the mtd instance embedded in struct nand_chip
- mtd: nand: pxa3xx: use the mtd instance embedded in struct nand_chip
- mtd: nand: r852: use the mtd instance embedded in struct nand_chip
- mtd: nand: sh_flctl: use the mtd instance embedded in struct nand_chip
- mtd: nand: sharpsl: use the mtd instance embedded in struct nand_chip
- mtd: nand: sunxi: use the mtd instance embedded in struct nand_chip
- mtd: nand: tmio: use the mtd instance embedded in struct nand_chip
- mtd: nand: txx9ndfmc: use the mtd instance embedded in struct nand_chip
- mtd: nand: vf610: use the mtd instance embedded in struct nand_chip
- mtd: nand: update the documentation to reflect framework changes
- mtd: nand: s3c2410: use the mtd instance embedded in struct nand_chip
- staging: mt29f_spinand: use the mtd instance embedded in struct nand_chip
- cris: nand: use the mtd instance embedded in struct nand_chip
- mtd: nand: bcm47xx: use the mtd instance embedded in struct nand_chip
- mtd: nand: socrates: use the mtd instance embedded in struct nand_chip
- mtd: nand: denali: use the mtd instance embedded in struct nand_chip
- mtd: nand: update mtd_to_nand()
- mtd: nand: remove useless mtd->priv = chip assignments
- cris: nand: remove useless mtd->priv = chip assignments
- staging: mt29f_spinand: remove useless mtd->priv = chip assignment
- mtd: nand: simplify nand_dt_init() usage
- mtd: nand: kill the chip->flash_node field
- mtd: nand: remove unused and buggy get_platform_nandchip() helper function
- mtd: nand: return consistent error codes in ecc.correct() implementations
- mtd: nand: use nand_check_erased_ecc_chunk in default ECC read functions
- mtd: nand: davinci: remove custom ‘erased check’ implementation
- mtd: nand: diskonchip: remove custom ‘erased check’ implementation
- mtd: nand: jz4740: remove custom ‘erased check’ implementation
- mtd: nand: add helpers to access ->priv
- ARM: make use of nand_set/get_controller_data() helpers
- mtd: nand: make use of nand_set/get_controller_data() helpers
- staging: mt29f_spinand: make use of nand_set/get_controller_data() helpers
- crypto: marvell/cesa – fix test in mv_cesa_dev_dma_init()
- MAINTAINERS: add a maintainer for the NAND subsystem
- Gregory CLEMENT (16):
- net: mvneta: Make the default queue related for each port
- net: mvneta: Associate RX queues with each CPU
- net: mvneta: Add naive RSS support
- net: mvneta: Configure XPS support
- net/macb: add support for resetting PHY using GPIO
- net/macb: Update device tree binding for resetting PHY using GPIO
- ARM: at91/dt: Add Support for the L+G VInCo platform
- rtc: rv8803: Extend compatibility with the rx8900
- usb: host: xhci-plat: fix NULL pointer in probe for device tree case
- net: mvneta: Fix for_each_present_cpu usage
- net: mvneta: Fix the CPU choice in mvneta_percpu_elect
- net: mvneta: Use on_each_cpu when possible
- net: mvneta: Remove unused code
- net: mvneta: Modify the queue related fields from each cpu
- net: mvneta: The mvneta_percpu_elect function should be atomic
- net: mvneta: Fix race condition during stopping
- Maxime Ripard (5):
- Thomas Petazzoni (8):
- ARM: mvebu: remove duplicated regulator definition in Armada 388 GP
- genirq: Implement irq_percpu_is_enabled()
- dmaengine: mv_xor: remove mv_xor_chan->current_type field
- dmaengine: mv_xor: de-duplicate mv_chan_set_mode*()
- dmaengine: mv_xor: add suspend/resume support
- PCI/MSI: Fix typos in
- base: Export platform_msi_domain_[alloc,free]_irqs
- ARM: mvebu: fix overlap of Crypto SRAM with PCIe memory window