# ChromeOS 5.15 与 Ubuntu HWE 6.17:HDMI / iDisp 链路对照(Kaisa) 本仓库在 `chromiumos_kernel/v5.15/` 下可对照 **ChromeOS 内核**(`release-R144-16503.B-chromeos-5.15`),与 **`kernel-src/linux-hwe-6.17-6.17.0/`**(Noble 源码包)中同一文件: `sound/soc/intel/boards/sof_board_helpers.c` → `set_idisp_hdmi_link()` --- ## 一、共同点(两端逻辑一致的部分) - 链接名 `iDisp%d`、CPU `iDisp%d Pin`、codec `ehdaudio0D2` + `intel-hdmi-hifi%d`(当 `idisp_codec` 为真时)与 `sof_board_helpers` 里其它平台字段一致。 - `link->no_pcm = 1;`,HDMI 为 **BE 链路**。 --- ## 二、关键差异(API 演进,不是简单“抄一行”) ### ChromeOS 5.15(旧 `struct snd_soc_dai_link`) - 使用 **`link->dpcm_playback = 1;`**(当时 DPCM 字段名)。 ### Ubuntu HWE 6.17(上游已改名) - 使用 **`link->playback_only = 1;`**(对应 `include/sound/soc.h` 中的 DPCM 语义)。 - **勿**在 6.17 上把 `playback_only` 改回 `dpcm_playback`(字段已移除,无法编译)。历史说明见 [`DIFF_SUMMARY.txt`](../patches/ubuntu-hwe-6.17/DIFF_SUMMARY.txt)。 --- ## 三、后续补丁方向(原 0001/0002 已移除) 曾尝试在 `set_idisp_hdmi_link` 中增加 **`SND_SOC_DPCM_TRIGGER_POST`**(旧称 0002),**Kaisa 真机 HDMI 仍无声**;该补丁已从仓库删除。 新补丁应在细读 **ChromeOS 5.15 与 6.17** 在 **`sound/soc/sof/ipc3.c`、`pcm.c`、`sound/soc/sof/intel/hda-dai.c`** 等上的差异后再设计,流程见 [`docs/OPERATION_ChromeOS_Kernel_Deep_Diff.md`](OPERATION_ChromeOS_Kernel_Deep_Diff.md)、[`docs/CHROMEOS_vs_UBUNTU617_SOUND_AUTODIFF.md`](CHROMEOS_vs_UBUNTU617_SOUND_AUTODIFF.md)、[`patches/ubuntu-hwe-6.17/README.md`](../patches/ubuntu-hwe-6.17/README.md)。 --- ## 四、建议的本地 diff 命令(只读对照) 在仓库根目录: ```bash diff -u \ chromiumos_kernel/v5.15/sound/soc/intel/boards/sof_board_helpers.c \ kernel-src/linux-hwe-6.17-6.17.0/sound/soc/intel/boards/sof_board_helpers.c \ | less ``` 若只关心 iDisp 段,可先在两文件中分别定位 `set_idisp_hdmi_link` 再手动对比。 --- ## 五、与项目其它文档的关系 - 三平台现象与 dmesg 要点:`audio_topology/ANALYSIS_Audio.md` - Ubuntu 打包与磁盘、勿混用 `make`/`debian/rules`:`docs/WORK_PROGRESS.md` - HWE 6.17 构建脚本:`scripts/ubuntu-hwe-617-build.sh`(应用补丁需 **`PATCH=...`**) - ChromeOS 深度 diff 与导出三文件 diff:`docs/OPERATION_ChromeOS_Kernel_Deep_Diff.md`