This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TAC5212 Linux 驱动程序(aplay:pcm_write:2058:写入错误:输入/输出错误)

Guru**** 2988520 points

Other Parts Discussed in Thread: TAC5212

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1660305/tac5212-linux-driver-aplay-pcm_write-2058-write-error-input-output-error

主题中讨论的其他器件: TAC5212

【删除了较旧的内核资格预审帖子以继续处理该主题问题】
在驱动程序中添加了一些调试语句、以便能够查看正在进行的操作。
注意事项是
1.驱动器设置 I2S(正确)
2.位大小 16 位(正确),采样率正确 44.1K
3、编解码器通电时,先做好准备,然后接通
4、请求的时钟是 12MHz、但有消息称它已更改为 12.5MHz? 这是否会导致问题?
5、 开始播放几秒钟后出现输入/输出错误。  
6.要播放的命令是:
amixer -c 0 cset iface=MIXER,name='ASI_RX_CH1_EN Switch' on
amixer -c 0 cset iface=MIXER,name='OUT1x Source' 'DAC Input’
amixer -c 0 cset iface=MIXER,name='OUT1x Config' 'Differential’
amixer -c 0 cset iface=MIXER,name='OUT1x Driver' 'Line-out’
amixer -c 0 cset iface=MIXER,name='ASI_RX_CH2_EN Switch' on
amixer -c 0 cset iface=MIXER,name=‘OUT2x Source' 'DAC Input’
amixer -c 0 cset iface=MIXER,name=‘OUT2x Config' 'Differential’
amixer -c 0 cset iface=MIXER,name=‘OUT2x Driver' 'Line-out'
aplay -c 2 -f S16_LE -r 44100 -d 15 --device='hw:0,0' pure_tone_44.1K_16b_stereo.wav
7、I2S 时钟是 200000000? (200MHz?)
启动 aplay 文件后的 6 秒后(可能是因为加载文件?)、始终会显示以下内容
红色来自 aplay、蓝色和紫色在 tac5x1x 驱动程序中添加了 debug output 语句  
aplay:pcmc_writ[375.714443] tac5x1x_set_sysclk 0 0 0
:2058:写入 err[375.719156] tac5x1x-codec2-0051:从 BCLK 恢复 cclk
或:输入/输出错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Mir、这是您可以帮助的吗?

    谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、我将再分配给我们的驱动程序开发人员 Niranjan。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    IO 错误通常与 DMA 相关。  物理上、即使 I2S 端没有连接、我们也不应该根据我之前的经验出现 IO 错误。

    请 从主机侧检查与 I2S 相关的器件树配置。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、我相信您是指实际 BCLK/DIN/DOUT/MCLK/FSCLK 的“线路“。  我已将 MCLK 从主机路由到 GPIO2(表 7.70 项目“i“)。 驱动程序是否支持主机的 MCLK? 我准备好了、出于稳定性/抖动原因、建议在 TAC 系列中使用 MCLK。  P.S:你能打开 git for “issues“来报告上面提到的驱动程序问题,并 打开 5.10 和 6.x 内核的分支吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    平台硬件编解码器驱动程序和 TAC5x1x 驱动程序之间是否存在导致 DMA 传输或 DMA IRQ 完成错误的兼容性问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    驱动程序不支持来自主机的 MCLK。  

    我可以创建 5.10 分支并修复问题。 但不确定是否可以打开 git 来处理问题。 让我在内部进行检查、然后返回

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    编号 编解码器驱动器是 I2C 驱动器、用于控制 TAC5212 并仅消耗音频数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    已了解 DMA 由主机控制器完成。 不大可能、但 TA5x1x 驱动程序通过 I2C 发送给 TAC5212 的命令与进行传输的主机之间是否存在时序问题? (仍试图了解此“I/O 错误“的来源)(*)  

    Inpiy/Output 错误的其他线程指向 此错误的时钟问题、MPU 供应商也说、根本原因可能是主机时钟和编解码器时钟之间不匹配。 但是,如果这个错误不应该发生,即使没有连接的编解码器,那么这样的结论或原因是不真实的? 查看引脚上的 MCLK/BLKC 物理原因可能是为了确认 SoC 是否正确配置来生成时钟?

    (*) 更新:pcmc_write:错误消息来自 aplay 代码、它报告从较低级别报告的(输入/输出错误消息)。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    > TA5x1x 驱动程序通过 I2C 发送到 TAC5212 和进行传输的主机之间的时序问题。

    我认为这是不可能基于我的经验。  我建议尝试将器件配置为“从器件“模式、从主机侧选择 BCLK、FSYNC(CPU 为主器件)。 请检查 DTS 文件中是否有使用相同驱动程序的 TAD*变体  

    git.ti.com/.../k3-am62d2-evm.dts

    有时、DTS 中的错误配置会导致问题。 谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    该问题确实与 DA I /I2S 平台驱动器导致 BCLK 和 FSCLK 时钟输出缺失有关。 在他们的支持下、问题得到了解决。