今日重点:🗣️ 口语——今天练一个你在评审会上一定会被问到的场景: 「你这改动会影响现有驱动吗?」「以前有人做过吗?」「为什么不全改?」。 这类问题要当场答,答不好显得没想过;这篇从 drm_panel atomic 的 RFC 里挑五句话, 都是在这些追问下的最短答法。

📖 原文(真实邮件,逐字引用)

/ section
The atomic state is opt-in. A panel that doesn't implement the state callbacks keeps working exactly as before, with the plain bridge state, so there is no need to touch the existing drivers.
The previous attempt by Val Packett ([1]), but it had issues with the API design, passing NULL for the state. This approach follows closer the path that was chosen for drm_bridge conversion.

出处:Dmitry Baryshkov,[PATCH RFC 0/9] drm/panel: add atomic state, dri-devel,10-08 21:14 北京。 原文

🗣️ 五句会上能直接用的答法

/ column
The atomic state is opt-in. 被问「会影响现有驱动吗」,这是最短答案的开头。opt-in = 默认关闭、要主动选才启用,软件口语里的标准词。念的时候 opt-in 重读、后面停半拍,再补细节。千万别用 optional(意思飘)或 not default(啰嗦)。
keeps working exactly as before 接着交代行为不变。注意 exactly 这个词——它把「基本不变」升级成「一模一样」,是对兼容性的明确承诺。念的时候放慢,这是对方最想听到的部分。
so there is no need to touch the existing drivers 第三句给影响面:不用改动现有驱动。三句连起来就是完整的标准答法——先说可选、再说行为不变、最后说影响面。顺序别颠倒:先承诺再解释,比先解释再承诺更让人安心。
warn and refuse to handle 描述防御行为的双动词结构。原文说这些入口点对那些面板「警告并拒绝处理」。两个动词并列,比笼统说 they don't work 精确得多:warn 是对开发者的提示,refuse 是行为本身。会上讲某个边界情况怎么处理时,这个结构很好用。
follows the path that was chosen for X 被人质疑「你这是新发明吧」,用它回答:这套做法沿着 drm_bridge 转换时选定的那条路。follows the path that was chosen for 是固定搭配,念的时候 path 重读。先例是最好的辩护——维护者最怕的就是自成一派。
had issues with the API design 被问「以前有人做过吗」,这句是标准答法的后半:先给出处(The previous attempt by Val Packett),再说问题(had issues with the API design)。注意 issues with 比 wrong、bad 礼貌得多——评价前人的工作,说「有问题」不说「错了」,会上尤其要注意这个分寸。

✨ 辅助彩蛋:术语卡

/ column

★ atomic state / atomic check

定义取自同一封 RFC

原文怎么说的 The panels also have no way to reject the configuration they cannot handle, as it doesn't take part in the atomic check。——面板无法拒绝自己处理不了的配置,因为它没有参与 atomic check。这句把「面板为什么要进 atomic」讲清楚了。
中文理解 DRM 的 atomic 模式要求一次提交里所有组件(CRTC、编码器、桥接、面板)在提交之前先集体校验一遍,任何一个说不行的就整体回滚。此前 drm_panel 不参与这个校验,等于「旁听」——配置合不合理它没机会表态,只能被动接受。
记忆钩子 atomic check = 提交前的集体表决。参与表决的组件才有否决权——这就是本期给 drm_panel 加 atomic state 的全部理由:让面板从旁听席上站起来。

✍️ 今日练习

/ column
✍️ 场景:你在会上提了一个新接口,同事连问三句——①「会影响现有驱动吗?」②「以前有人做过吗?」③「为什么不全改?」。请用英文各答一句,用上今天学的说法(opt-in / keeps working exactly as before / no need to touch / previous attempt / had issues with / follows the path)。
💡 显示答案
参考作答(仿写示范,非原文):① The new callbacks are opt-in: a driver that doesn't implement them keeps working exactly as before, so there is no need to touch the existing drivers. ② There was a previous attempt, but it had issues with the locking model, so this approach follows the path that was chosen for the bridge conversion. ③ Converting everything at once would mean carrying the old and new paths in every driver; keeping it opt-in lets hosts migrate one at a time.
📖 原文:The atomic state is opt-in. A panel that doesn't implement the state callbacks keeps working exactly as before, with the plain bridge state, so there is no need to touch the existing drivers. ... The previous attempt by Val Packett ([1]), but it had issues with the API design, passing NULL for the state. This approach follows closer the path that was chosen for drm_bridge conversion.
📎 原文引用

每日一句:Promise compatibility first, explain the mechanics second — the room listens in that order.

仿写示范