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.

[参考译文] TAS2781:Lenovo Legion 9i 音频不工作 TAS2781

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1384525/tas2781-lenovo-legion-9i-audio-does-not-work-tas2781

器件型号:TAS2781

工具与软件:

我一直在尝试让音频在 Legion 9 16IRX9上正常工作。

如果我使用 https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1282089/tas2781-tas2781中的脚本 使用 i2c 总线1、则左侧的扬声器就可以正常工作。

以下是在另一个线程中需要的一些诊断信息:

此外、在/sys/class/sound/hwC1D0/subsystem_id 中给出的 subsystem_id 是0x17aa3d34。

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

    尊敬的 Tayler:

    我循环使用我们的软件主管来提供帮助。

    此致、
    Arthur

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

    嗨、Guy、

    请将寄存器转储给我。  

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

    我希望这是正确的转储地址:

    我还有几个观察结果:

    *从暂停模式唤醒后、dmesg 中弹出此消息:

    "tas2781-hda i2c-TIAS2781:00:tasdevice_prmg_load:firmware is NULL"

    *昨天我发现了这个4pa 旁路脚本,它可以激活笔记本电脑的两端的音频,但它在 GNOME 桌面音频设置中都被视为单端音频-也就是说,如果我测试左/右音频,所有的扬声器都为右声道发出声音,左声道没有声音。 我认为一侧比另一侧更响亮、但我不能确定这一点。

    #!/bin/bash
    
    clear
    function clear_stdin()
    (
        old_tty_settings=`stty -g`
        stty -icanon min 0 time 0
    
        while read none; do :; done
    
        stty "$old_tty_settings"
    )
    
    tas2781_i2c_addr=(0x38 0x39 0x3b 0x3d)
    
    for value in ${tas2781_i2c_addr[@]};
    do
    i2cset -f -y 1 $value 0x00 0x00
    i2cset -f -y 1 $value 0x7f 0x00
    i2cset -f -y 1 $value 0x01 0x01
    i2cset -f -y 1 $value 0x0e 0xc4
    i2cset -f -y 1 $value 0x0f 0x40
    i2cset -f -y 1 $value 0x5c 0xd9
    i2cset -f -y 1 $value 0x60 0x10
    i2cset -f -y 1 $value 0x0a 0x2e
    i2cset -f -y 1 $value 0x0d 0x01
    i2cset -f -y 1 $value 0x16 0x40
    i2cset -f -y 1 $value 0x00 0x01
    i2cset -f -y 1 $value 0x17 0xc8
    i2cset -f -y 1 $value 0x00 0x04
    i2cset -f -y 1 $value 0x30 0x00
    i2cset -f -y 1 $value 0x31 0x00
    i2cset -f -y 1 $value 0x32 0x00
    i2cset -f -y 1 $value 0x33 0x01
    
    i2cset -f -y 1 $value 0x00 0x08
    i2cset -f -y 1 $value 0x18 0x00
    i2cset -f -y 1 $value 0x19 0x00
    i2cset -f -y 1 $value 0x1a 0x00
    i2cset -f -y 1 $value 0x1b 0x00
    i2cset -f -y 1 $value 0x28 0x40
    i2cset -f -y 1 $value 0x29 0x00
    i2cset -f -y 1 $value 0x2a 0x00
    i2cset -f -y 1 $value 0x2b 0x00
    
    i2cset -f -y 1 $value 0x00 0x0a
    i2cset -f -y 1 $value 0x48 0x00
    i2cset -f -y 1 $value 0x49 0x00
    i2cset -f -y 1 $value 0x4a 0x00
    i2cset -f -y 1 $value 0x4b 0x00
    i2cset -f -y 1 $value 0x58 0x40
    i2cset -f -y 1 $value 0x59 0x00
    i2cset -f -y 1 $value 0x5a 0x00
    i2cset -f -y 1 $value 0x5b 0x00
    
    i2cset -f -y 1 $value 0x00 0x00
    i2cset -f -y 1 $value 0x02 0x00
    clear_stdin
    #read -n1 -p "Press any key to continue..."
    done;
    

    谢谢!

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

    请使用此脚本

    e2e.ti.com/.../3107.2pa_2D00_byps.sh

    命令、如下所示

    #。 2pa_byps.sh 1.

    PS:1是 I2C 总线编号。

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

    3107.2pa-byps.sh 脚本只会使左扬声器工作(在软件测试中是右扬声器)。 我在上一篇文章中发送的一个结果是左右两个扬声器都有声音,但似乎统一在软件只是一边的音频。

    谢谢!

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

    嗨、Guy

    我认为此问题的根本原因是 Realtek 编解码器驱动程序、它向 tas2781提供音频信号。 在脚本中、 以下代码设置了左通道或右通道。

    如果[$val -eq 0 ];
    电感
    i2cset -f -y $i2c_bus $value 0x0a 0x1E
    设计
    i2cset -f -y $i2c_bus $value 0x0a 0x2e
    和数据

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

    谢谢、如果我手动运行、看起来像:

    i2cset -f -y 1 0x38 0x0a 0x1E

    在脚本结束时或在脚本之后手动、我可以获得正确的左/右通道。

    是否需要将任何内容提交到 Linux 内核的上游以使此器件在默认情况下正常运行? 是否缺少固件?

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

    是指两个芯片都将寄存器0xA 设置为0x1E。 如果是、我认为我们的代码和 bin 文件没有任何问题、根本原因是编解码器仅提供左声道音频信号。