Pengutronix Contributions to v4.10

Robert Schwebel | | Kernel

Here is a short report about Pengutronix' contributions to the 4.10 kernel. It mainly contains more improvements for the i.MX6 graphics and video subsystem, Etnaviv, Marvell Orion and Altera SoCFPGA.

Memory Subsystem

  • A bug was fixed that led to performance impact on CMA memory (lst)

Etnaviv

  • Memory handling was improved for the low IOVA case (lst)
  • Move GPU linear window for i.MX6SoloX; make FAST_CLEAR work where possible (lst)
  • Don't invoke OOM killer for dump code, as it's only a debug feature (lst)
  • Return new SG table for prime (lst)
  • Implement dma-buf mmap (lst)

Graphics Subsystem

  • Add support for AUO G185HAN01 panel (lst)
  • Add support for AUO G133HAN01 panel (lst)
  • Add more properties for Innolux G121I1-L1 panel (lst)
  • Remove a warning for TC358767 analog video digitizer (lst)
  • IPU DI: silence videomode logspam (lst)
  • Remove unnecessary double disable check for i.MX LDB (pza)
  • Make the LDB_DI0 and LDB_DI1 clocks read-only (pza)
  • Mask mmdc_ch1 handshake for periph2_sel and mmdc_ch1_axi_podf (pza)
  • Initially clear all GPU interrupts, preparation for better IPU reset behaviour in the future (pza)
  • Merge ipu_plane_atomic_set_base into atomic_update for IPUv3 (pza)
  • Request modeset if plane offsets changed on IPUv3 (pza)
  • Fix LDB clock tree on i.MX6 QuadPlus (lst)

Video Subsystem

  • Support downsizing to 1/2 width and/or height in the CSI (pza)
  • Add support for YUV 4:2:2 and 4:4:4, NV12, and NV16 formats to the IPUv3 (pza)
  • Add YUV 4:4:4 support to the IPUv3 (pza)
  • Remove unused ipu_cpmem_set_yuv_planar function for IPUv3 (pza)
  • Let drm_plane_state_to_ubo/vbo handle chroma subsampling other than 4:2:0 on IPUv3 (pza)

Misc

  • Make use of CURDIR, to make the build system more robust (ukl)
  • Fix coding style in clock gate code (ukl)
  • Fix duplicate level interrupts on MXS (sha)
  • Use enable/disable regs to (un)mask irqs on MXS (sha)
  • FEC: drop check for clk==NULL before calling clk_* (ukl)

Marvell Orion

  • Fix documentation for SPI (ukl)
  • Fix some error paths alloc_nand_ressource() (ukl)
  • armada-370-rn102: add pinmuxing for i2c0 (ukl)
  • armada-370-rn102: drop specification of compatible for i2c0 (ukl)
  • armada-xp-rn2120: add pinmuxing for ethernet (ukl)
  • armada-xp-rn2120: drop wrong compatible for i2c0 (ukl)

802.15.4 / 6LoWPAN

  • Fix CCA ED values for RF233 (aar)

SoCFPGA

  • Add NAND controller nodes (str)
  • Enable QSPI, add to several oftrees (str)

Further Readings

Pengutronix at FOSDEM 2021

"FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels. In 2021, they will gather online." -- FOSDEM


15 Years of i.MX in Mainline Linux

Today it has been 15 years since we mainlined support for Freescale/NXP's i.MX architecture in the Linux kernel! That was one small step for [a] man, one giant leap for (industrial Linux users') mankind :-) Here is some background about why it happened and what you might want to learn from history for your next embedded Linux project.


What Kernel Should I Use (Embedded Edition)

Some days ago, Greg Kroah-Hartmann wrote a great blogpost about Which Stable Kernel One Should Use?. I fully agree with his position; however, I'd like to make some additions for the industry device manufacturer use case and some common pitfalls and misunderstandings we see in that area.