if (chg->pr_swap_in_progress) { smblib_dbg(chg, PR_INTERRUPT, "Ignoring since pr_swap_in_progress\n"); return IRQ_HANDLED; }代码分析
时间: 2024-02-17 16:08:44 浏览: 196
smps-chg.rar_POWER SWITCHING_smps_smps in matlab
这段代码主要是用于过滤掉一些不需要处理的 USB Type-C 插拔事件,具体是当检测到 PR_SWAP 操作正在执行时,就会忽略当前的 USB Type-C 插拔事件,并输出相应的调试信息。这是因为在 PR_SWAP 操作期间,USB Type-C 接口会被切换到了接口角色模式,此时不能处理其他的 USB Type-C 插拔事件,否则可能会干扰 PR_SWAP 操作的执行。
需要注意的是,`chg` 是指向 `struct smb_charger` 结构体的指针,其中包含了电池驱动的一些信息和状态,如 pr_swap_in_progress 表示当前是否正在执行 PR_SWAP 操作。而 IRQ_HANDLED 表示中断已经被处理,这里直接返回该值,表示当前 USB Type-C 插拔事件已经被过滤掉并且不需要进一步处理。
阅读全文