这是关于将 2011 年的 Chumby 8 从其自带的 2.6.28 内核升级到现代 6.x 内核的博客系列的最后一篇文章。包含了多个子系统的升级工作及相关细节:
- clk:提交了一系列主内核的提交,包括添加寄存器定义、修复分频器、添加时钟等,还有仅在作者分支中的提交,如控制 SSP 时钟寄存器的复位位等。这些提交解决了设置外设时钟的问题,尤其是 SDHCI 控制器时钟的处理。
- etnaviv:提交了几个主内核的提交以使 GC300 2D GPU 工作,主要是移植原始 Vivante 驱动中的一些特性到开源的 etnaviv 驱动中,同时也有用户空间的工作。
- ASoC:主内核提交增加了 WM8961 编解码器的支持,作者分支中的提交是为了使 pxa-ssp 音频驱动在 PXA16x 上工作,包括修复空指针访问错误等,但这些提交需要清理才能提交到上游。
- dma:仅有的 DMA 更改是使用 platform_get_irq_optional,作者在该补丁中犯了一个错误,忘记在 Fixes 标签末尾添加关闭的“)”,但已被 dmaengine 维护者修复。
- ARM:主内核提交修复了几个阻止内核挂起和错误报告 CPU 使用率的问题,作者分支中的提交是将外设插入设备树包含文件,因最初提交被忽视而未提交大部分到上游。
- pwm:提交了一系列使 PWM 背光正常工作的主内核提交,解决了停止 PWM 时未将占空比重置为 0 等问题。
- mmc:提交了多个 SDHCI 相关的主内核提交,使 SDHCI 驱动在主线内核中完全工作,最近的提交是修复静态分析警告。
- wifi:提交了几个使 libertas 驱动与现代 wpa_supplicant 版本兼容并改进 WPS 支持的主内核提交。
- serial:最近提交的两个串行相关的主内核提交修复了 PXA UART 的两个驱动问题,使其正常工作。
- power:作者分支中的提交是一个用于使重启和关机命令正常工作的驱动,因仅对 Chumby 有用且无上游 Chumby 设备树文件而未提交。
- spi:作者分支中的提交是为 PXA168 添加 SPI 支持和增加最小 DMA 大小的提交,可能容易提交但需更新 DT 绑定。
- touchscreen:作者分支中的提交是一个新的触摸屏驱动,因无 Chumby.dts 文件而未提交上游。
- drm:依赖于他人创建的非主线提交,作者分支中的提交是关于 DRM 的一些工作,因缺少 DT 支持而未提交到上游。
总结来说,尽管不是所有提交都进入主线内核,但作者在这个内核升级项目中取得了很多成果,包括修复主线内核问题、开发新驱动和获得提交补丁的宝贵经验,同时也讨论了供应商分叉内核与主线内核的一些情况以及老旧架构的支持问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。