Skip to content

[BUG] Huawei MateBook D15 headphone and speaker not work #3831

Open

Description

@tvelazquez

@plbossart A few months ago I bought a Huawei Matebook D15 and the sound only works through HDMI.
I have followed this guide https://github.com/thesofproject/linux/wiki/ES8336-support
And I have compiled this branch https://github.com/thesofproject/linux/tree/es8336-v5.19
http://alsa-project.org/db/?f=77cd3bc0e0fa1b6a398e76f454fc11f017b10b4c

Activity

  1. plbossart commented on Aug 24, 2022

    @plbossart
    Member

    You are not using the SOF driver!

    snd_intel_dspcfg: dsp_driver=1 dyndbg= p

    please remove this option, and read the wiki:
    https://github.com/thesofproject/linux/wiki/ES8336-support

  2. tvelazquez commented on Aug 24, 2022

    @tvelazquez
    Author
  3. plbossart commented on Aug 24, 2022

    @plbossart
    Member

    The last line of the dmesg log shows you have started probing the machine driver

    [ 21.210242] sof-essx8336 sof-essx8336: quirk mask 0x20

    If you don't see a card created it means that that probe failed somewhere.
    Not sure what happens, you have dynamic debug enabled but nothing is shown.

    You will have to trace manually where the issue happens, likely by adding some dev_info statements in sound/soc/intel/boards/sof_es8336.c

  4. plbossart commented on Aug 24, 2022

    @plbossart
    Member

    you may also want to try and enable dynamic debug for the ASoC core, this will be very verbose but let you know why the card registration failed

    options snd-soc-core dyndbg=+pmf

  5. tvelazquez commented on Aug 24, 2022

    @tvelazquez
    Author

    @plbossart I add some dev_info:

    priv->gpio_speakers = gpiod_get_optional(codec_dev, "speakers-enable", GPIOD_OUT_LOW);
    if (IS_ERR(priv->gpio_speakers)) {
    	ret = dev_err_probe(dev, PTR_ERR(priv->gpio_speakers),
    			    "could not get speakers-enable GPIO\n");
    	dev_info(dev, "could not get speakers-enable GPIO\n");
    	goto err_put_codec;
    }
    

    [ 52.247139] sof-essx8336 sof-essx8336: quirk mask 0x20
    [ 52.247141] sof-essx8336 sof-essx8336: quirk SSP0
    [ 52.247142] sof-essx8336 sof-essx8336: quirk DMIC enabled
    [ 52.247168] sof-essx8336 sof-essx8336: could not get speakers-enable GPIO

    http://alsa-project.org/db/?f=5adfb126cedacfecb5bc021097816853ebeb769b

  6. plbossart commented on Aug 25, 2022

    @plbossart
    Member

    That's not good news @tvelazquez, the problem is likely a BIOS issue or something. That's super hard to debug remotely. You are getting an error for an optional gpio, not sure what happens.

    Try to add dynamic debug in https://elixir.bootlin.com/linux/latest/source/drivers/gpio/gpiolib.c and see what the results are.

    You could also bypass this and just set priv->gpio_speakers = NULL and see what happens.

  7. tvelazquez commented on Aug 25, 2022

    @tvelazquez
    Author

    @plbossart dynamic debug enabled for gpiolib and add priv->gpio_speakers = NULL;

    [ 9.281388] sof-essx8336 sof-essx8336: quirk mask 0x20
    [ 9.281390] sof-essx8336 sof-essx8336: quirk SSP0
    [ 9.281391] sof-essx8336 sof-essx8336: quirk DMIC enabled
    [ 9.281413] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: GPIO lookup for consumer speakers-enable
    [ 9.281414] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: using ACPI for GPIO lookup
    [ 9.281428] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: No GPIO consumer speakers-enable found
    [ 9.281428] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: GPIO lookup for consumer headphone-enable
    [ 9.281429] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: using ACPI for GPIO lookup
    [ 9.281430] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: using lookup tables for GPIO lookup
    [ 9.281431] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: No GPIO consumer headphone-enable found
    [ 9.281433] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link SSP0-Codec
    [ 9.281433] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link dmic01
    [ 9.281434] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link dmic16k
    [ 9.281435] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link iDisp1
    [ 9.281435] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link iDisp2
    [ 9.281436] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link iDisp3
    [ 9.281437] snd_soc_core:snd_soc_add_pcm_runtime: sof-essx8336 sof-essx8336: ASoC: binding SSP0-Codec
    [ 9.281438] snd_soc_core:soc_dai_link_sanity_check: sof-essx8336 sof-essx8336: ASoC: codec component i2c-ESSX8336:00 not found for link SSP0-Codec
    [ 9.281440] sof-essx8336 sof-essx8336: snd_soc_register_card failed: -517

  8. plbossart commented on Aug 25, 2022

    @plbossart
    Member

    [ 9.281437] snd_soc_core:snd_soc_add_pcm_runtime: sof-essx8336 sof-essx8336: ASoC: binding SSP0-Codec
    [ 9.281438] snd_soc_core:soc_dai_link_sanity_check: sof-essx8336 sof-essx8336: ASoC: codec component i2c-ESSX8336:00 not found for link SSP0-Codec

    that's a completely different issue to the initial gpio issue. This hints at a configuration issue where maybe the codec is not probed.

    I don't have any bandwidth to help in the next two weeks, sorry.

  9. tvelazquez commented on Aug 27, 2022

    @tvelazquez
    Author

    @plbossart What dumps do you need to do the analysis? acpidump? I would like to provide you with all the information you need. Thanks.

  10. plbossart commented on Sep 12, 2022

    @plbossart
    Member

    @tvelazquez make sure snd-soc-es8316 is probed and provide the information shown in /sys/kernel/debug/asoc/components

  11. tvelazquez commented on Sep 12, 2022

    @tvelazquez
    Author

    @plbossart added some printk at es8316_probe() and es8316_i2c_probe() but dmesg doesn't show it.

    /sys/kernel/debug/asoc/components:
    0000:00:1f.3
    ehdaudio0D2
    dmic-codec
    snd-soc-dummy
    snd-soc-dummy

  12. plbossart commented on Sep 12, 2022

    @plbossart
    Member

    @tvelazquez can you share the DSDT and also verify that this codec driver is part of the build? Wondering if there is some sort of I2C configuration issue.

  13. 16 remaining items

  14. koffiato commented on Dec 21, 2022

    @koffiato

    Why is this issue closed?

  15. yangxiaohua2009 commented on Dec 22, 2022

    @yangxiaohua2009

    @tvelazquez Is the codec driver loaded properly? can you see snd_soc_es8316 using lsmod | grep snd ?

  16. tvelazquez commented on Dec 22, 2022

    @tvelazquez
    Author
  17. tvelazquez commented on Jan 1, 2023

    @tvelazquez
    Author

    @yangxiaohua2009 @plbossart What additional tests could I do?

  18. yangxiaohua2009 commented on Jan 5, 2023

    @yangxiaohua2009

    You can see the codec driver in lsmod, but the es8316_i2c_probe fuction is not called, making the probe of sound card failed. can you add print message to make sure the es8316_i2c_probe failed to be called? If so, it's because the dsdt is wrong. Can you show your overriding dsdt table?

  19. tvelazquez commented on Jan 27, 2023

    @tvelazquez
    Author
  20. yangxiaohua2009 commented on Jan 27, 2023

    @yangxiaohua2009

    The dsdt looks good but es8316_i2c_probe is not called. Usually when the HID 'ESSX8336' in dsdt matches the ID in es8316.c, es8316_i2c_probe is called.
    I also see a device named ESSX8336 in your alsainfo.

    Can you see the device /sys/bus/i2c/devices/i2c-ESSX8336\:00 ?
    Can you blacklist and then manuelly probe the module snd_soc_es8316 and snd_soc_sof_es8336 using modprobe and see what happens?

  21. tvelazquez commented on Jan 27, 2023

    @tvelazquez
    Author

    @yangxiaohua2009 the device exist:

    ~ # ls -l  /sys/bus/i2c/devices/i2c-ESSX8336:00
    lrwxrwxrwx 1 root root 0 en   27 17:37 /sys/bus/i2c/devices/i2c-ESSX8336:00 -> ../../../devices/pci0000:00/0000:00:15.2/i2c_designware.1/i2c-1/i2c-ESSX8336:00
    ~ # ls -l  /sys/bus/i2c/devices/i2c-ESSX8336:00/
    total 0
    lrwxrwxrwx 1 root root    0 en   27 17:37 firmware_node -> ../../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:7c/ESSX8336:00
    -r--r--r-- 1 root root 4096 en   27 17:36 modalias
    -r--r--r-- 1 root root 4096 en   27 17:37 name
    drwxr-xr-x 2 root root    0 en   27 17:36 power
    lrwxrwxrwx 1 root root    0 en   27 17:37 subsystem -> ../../../../../../bus/i2c
    -rw-r--r-- 1 root root 4096 en   27 17:36 uevent
    -r--r--r-- 1 root root 4096 en   27 17:37 waiting_for_supplier
    

    snd_soc_es8316 and snd_soc_sof_es8336 blacklisted and then manually loaded, but the same result, the es8316_i2c_probe() is not called:

    [  191.686000] sof-essx8336 sof-essx8336: quirk mask 0x20
    [  191.686003] sof-essx8336 sof-essx8336: quirk SSP0
    [  191.686003] sof-essx8336 sof-essx8336: quirk DMIC enabled
    [  191.686051] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link SSP0-Codec
    [  191.686052] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link dmic01
    [  191.686053] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link dmic16k
    [  191.686054] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link iDisp1
    [  191.686054] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link iDisp2
    [  191.686055] snd_soc_core:soc_check_tplg_fes: sof-essx8336 sof-essx8336: info: override BE DAI link iDisp3
    [  191.686057] snd_soc_core:snd_soc_add_pcm_runtime: sof-essx8336 sof-essx8336: ASoC: binding SSP0-Codec
    [  191.686058] snd_soc_core:soc_dai_link_sanity_check: sof-essx8336 sof-essx8336: ASoC: codec component i2c-ESSX8336:00 not found for link SSP0-Codec
    [  191.686060] sof-essx8336 sof-essx8336: snd_soc_register_card failed: -517
    
  22. yangxiaohua2009 commented on Jan 28, 2023

    @yangxiaohua2009

    @tvelazquez Can you change the _CRS part and see what happens? Basically I changed the _CRS and _INI part according to working dsl here
    cnl_dsdt.zip

    If this still not work I have no idea why es8316_i2c_probe failed to be called.

            Device (ESSX)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Name (_HID, "ESSX8336")  // _HID: Hardware ID
                Name (_SUB, "12345678")  // _SUB: Subsystem ID
                Name (_CID, "ESSX8336")  // _CID: Compatible ID
                Name (_DDN, "ES8336")  // _DDN: DOS Device Name
                Name (_UID, One)  // _UID: Unique ID
                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                     Name (SBUF, ResourceTemplate ()
                        {
                        I2cSerialBusV2 (0x0010, ControllerInitiated, 0x00061A80,
                        AddressingMode7Bit, "\\_SB.PC00.I2C2",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                    GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
                        "\\_SB.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                })
                    CreateWordField (SBUF, 0x59, PIN1)
                    CreateWordField (SBUF, 0x7C, PIN2)
                    CreateWordField (SBUF, 0x9F, INT1)
                    PIN1 = GNUM (0x09000010)
                    PIN2 = GNUM (0x09000011)
                    INT1 = GNUM (0x090B000D)
                    Return (SBUF) /* \_SB_.PC00.I2C2.ESSX.SBUF */
                }
    
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    Return (0x0F)
                }
    
                Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                {
                }
    
                Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                {
                }
    
                Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
                {
                }
    
                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    If ((Arg0 == Buffer (0x10)
                            {
                                /* 0000 */  0x04, 0x0C, 0x80, 0xA9, 0x16, 0xE0, 0x3E, 0x34,  // ......>4
                                /* 0008 */  0x41, 0xF4, 0x6B, 0xCC, 0xE7, 0x0F, 0x43, 0x32   // A.k...C2
                            }))
                    {
                        If ((Arg2 == Zero))
                        {
                            Return (0xBB)
                        }
    
                        If ((Arg2 == One))
                        {
                            Return (0xBB)
                        }
    
                        If ((Arg2 == 0x02))
                        {
                            Return (0x02)
                        }
    
                        If ((Arg2 == 0x03))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x06))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x0F))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x10))
                        {
                            Return (0x06)
                        }
    
                        If ((Arg2 == 0x20))
                        {
                            Return (0x08)
                        }
    
                        If ((Arg2 == 0x2C))
                        {
                            Return (0x03)
                        }
    
                        If ((Arg2 == 0x2D))
                        {
                            Return (0x1B)
                        }
    
                        If ((Arg2 == 0x11))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x21))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x12))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x22))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x13))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x23))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x14))
                        {
                            Return (0x0A)
                        }
    
                        If ((Arg2 == 0x24))
                        {
                            Return (0x0A)
                        }
    
                        If ((Arg2 == 0x15))
                        {
                            Return (0x12)
                        }
    
                        If ((Arg2 == 0x25))
                        {
                            Return (0x12)
                        }
    
                        If ((Arg2 == 0x16))
                        {
                            Return (0x08)
                        }
    
                        If ((Arg2 == 0x26))
                        {
                            Return (0x08)
                        }
    
                        If ((Arg2 == 0x17))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x27))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x18))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x28))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x19))
                        {
                            Return (0x02)
                        }
    
                        If ((Arg2 == 0x29))
                        {
                            Return (0x02)
                        }
    
                        If ((Arg2 == 0x1A))
                        {
                            Return (0x03)
                        }
    
                        If ((Arg2 == 0x2A))
                        {
                            Return (0x03)
                        }
    
                        If ((Arg2 == 0x1B))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x2B))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x40))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x50))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x41))
                        {
                            Return (0xBB)
                        }
    
                        If ((Arg2 == 0x51))
                        {
                            Return (0xBB)
                        }
    
                        If ((Arg2 == 0x42))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x52))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x44))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x54))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x45))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x55))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x4A))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x5A))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x46))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x56))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x5B))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x86))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x8E))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x8F))
                        {
                            Return (0x11)
                        }
    
                        If ((Arg2 == 0x90))
                        {
                            Return (0x22)
                        }
    
                        If ((Arg2 == 0x91))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x92))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x93))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0x94))
                        {
                            Return (0x61)
                        }
    
                        If ((Arg2 == 0x95))
                        {
                            Return (0x41)
                        }
    
                        If ((Arg2 == 0x96))
                        {
                            Return (0x41)
                        }
    
                        If ((Arg2 == 0x97))
                        {
                            Return (0x41)
                        }
    
                        If ((Arg2 == 0x98))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x99))
                        {
                            Return (0x80)
                        }
    
                        If ((Arg2 == 0x9A))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x9B))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x9C))
                        {
                            Return (0x80)
                        }
    
                        If ((Arg2 == 0x9D))
                        {
                            Return (0x80)
                        }
    
                        If ((Arg2 == 0x9E))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0x9F))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xA0))
                        {
                            Return (0x71)
                        }
    
                        If ((Arg2 == 0xA1))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xA2))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xA3))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xA4))
                        {
                            Return (0x71)
                        }
    
                        If ((Arg2 == 0xA5))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xA6))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xA7))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xA8))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xA9))
                        {
                            Return (0x30)
                        }
    
                        If ((Arg2 == 0xAA))
                        {
                            Return (0x30)
                        }
    
                        If ((Arg2 == 0xAB))
                        {
                            Return (0x30)
                        }
    
                        If ((Arg2 == 0xAC))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xAD))
                        {
                            Return (0x30)
                        }
    
                        If ((Arg2 == 0xAE))
                        {
                            Return (0x30)
                        }
    
                        If ((Arg2 == 0xAF))
                        {
                            Return (0x30)
                        }
    
                        If ((Arg2 == 0xB0))
                        {
                            Return (0x10)
                        }
    
                        If ((Arg2 == 0xB1))
                        {
                            Return (0x20)
                        }
    
                        If ((Arg2 == 0xB2))
                        {
                            Return (0x20)
                        }
    
                        If ((Arg2 == 0xB3))
                        {
                            Return (0x20)
                        }
    
                        If ((Arg2 == 0xB4))
                        {
                            Return (0xA0)
                        }
    
                        If ((Arg2 == 0xB5))
                        {
                            Return (0xB0)
                        }
    
                        If ((Arg2 == 0xB6))
                        {
                            Return (0xB0)
                        }
    
                        If ((Arg2 == 0xB7))
                        {
                            Return (0xB0)
                        }
    
                        If ((Arg2 == 0xB8))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xB9))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0xBA))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0xBB))
                        {
                            Return (One)
                        }
    
                        If ((Arg2 == 0xBC))
                        {
                            Return (0x03)
                        }
    
                        If ((Arg2 == 0xBD))
                        {
                            Return (0x04)
                        }
    
                        If ((Arg2 == 0xBE))
                        {
                            Return (0x04)
                        }
    
                        If ((Arg2 == 0xBF))
                        {
                            Return (0x04)
                        }
    
                        If ((Arg2 == 0xC0))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xC1))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xC2))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xC3))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xC4))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xC5))
                        {
                            Return (0xB3)
                        }
    
                        If ((Arg2 == 0xC6))
                        {
                            Return (0xC9)
                        }
    
                        If ((Arg2 == 0xC7))
                        {
                            Return (0x8C)
                        }
    
                        If ((Arg2 == 0xC8))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xC9))
                        {
                            Return (0xB3)
                        }
    
                        If ((Arg2 == 0xCA))
                        {
                            Return (0xC9)
                        }
    
                        If ((Arg2 == 0xCB))
                        {
                            Return (0x8C)
                        }
    
                        If ((Arg2 == 0xCC))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xCD))
                        {
                            Return (0xB3)
                        }
    
                        If ((Arg2 == 0xCE))
                        {
                            Return (0xC9)
                        }
    
                        If ((Arg2 == 0xCF))
                        {
                            Return (0x8C)
                        }
    
                        If ((Arg2 == 0xD0))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xD1))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xD2))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xD3))
                        {
                            Return (0xFF)
                        }
    
                        If ((Arg2 == 0xD4))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xD5))
                        {
                            Return (0xC6)
                        }
    
                        If ((Arg2 == 0xD6))
                        {
                            Return (0x73)
                        }
    
                        If ((Arg2 == 0xD7))
                        {
                            Return (0x86)
                        }
    
                        If ((Arg2 == 0xD8))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xD9))
                        {
                            Return (0xC6)
                        }
    
                        If ((Arg2 == 0xDA))
                        {
                            Return (0x73)
                        }
    
                        If ((Arg2 == 0xDB))
                        {
                            Return (0x86)
                        }
    
                        If ((Arg2 == 0xDC))
                        {
                            Return (Zero)
                        }
    
                        If ((Arg2 == 0xDD))
                        {
                            Return (0xC6)
                        }
    
                        If ((Arg2 == 0xDE))
                        {
                            Return (0x73)
                        }
    
                        If ((Arg2 == 0xDF))
                        {
                            Return (0x86)
                        }
    
                        If ((Arg2 == 0xFE))
                        {
                            ^^^LPCB.EC0.XXJC = One
                            Return (0xAA)
                        }
                    }
    
                    Return (0xFF)
                }
            }
    
  23. tvelazquez commented on Jan 31, 2023

    @tvelazquez
    Author

    @yangxiaohua2009 same result with _CRS & _INI changed. The es8316_i2c_probe failed to be called. This is a nightmare.

    @mchehab @plbossart good job with Improve quirks detection for es8336 #4112 I tried mchehab:sound-es8336 with dynamic debug enabled and this is the

    dmesg
    [   10.596304] acpi:acpi_bus_get_status: ACPI: Device [I2C1] status [0000000f]
    [   10.596305] acpi:acpi_util_eval_error: ACPI: \_SB_.PC00.I2C2: ACPI: utils: Evaluate [_STA]: AE_NOT_FOUND
    [   10.596306] acpi:acpi_bus_get_status: ACPI: Device [I2C2] status [0000000f]
    [   10.596310] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.I2C2.ESSX: ACPI: utils: Return value [15]
    [   10.596311] acpi:acpi_bus_get_status: ACPI: Device [ESSX] status [0000000f]
    [   10.596316] acpi:acpi_util_eval_error: ACPI: \_SB_.PC00.I2C3: ACPI: utils: Evaluate [_STA]: AE_NOT_FOUND
    --
    [   10.598744] i2c_core:i2c_new_client_device: i2c i2c-0: client [GXTP7863:00] registered with bus id i2c-GXTP7863:00
    [   10.598751] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.I2C2.ESSX: ACPI: utils: Return value [15]
    [   10.598752] acpi:acpi_bus_get_status: ACPI: Device [ESSX] status [0000000f]
    [   10.599133] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.I2C3.HWSP: ACPI: utils: Return value [15]
    --
    [   10.599546] acpi:acpi_iommu_configure_id: intel-lpss 0000:00:15.2: Adding to IOMMU failed: -19
    [   10.599594] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state change: D0 -> D0
    [   10.599596] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Already in D0
    [   10.599715] acpi:acpi_device_notify: wakeup wakeup32: No ACPI support
    --
    [   10.611409] acpi:acpi_pci_irq_enable: intel-lpss 0000:00:15.2: PCI INT C -> GSI 29 (level, low) -> IRQ 29
    [   10.611462] acpi:acpi_device_notify: ACPI: \_SB_.PC00.I2C2: ACPI: Bound to device idma64.1
    [   10.611475] acpi:acpi_iommu_configure_id: idma64 idma64.1: Adding to IOMMU failed: -19
    --
    [   10.611720] idma64 idma64.1: Found Intel integrated DMA 64-bit
    [   10.611732] acpi:acpi_device_notify: ACPI: \_SB_.PC00.I2C2: ACPI: Bound to device i2c_designware.1
    [   10.611740] acpi:acpi_iommu_configure_id: i2c_designware i2c_designware.1: Adding to IOMMU failed: -19
    --
    [   10.612525] acpi:acpi_bus_get_status: ACPI: Device [I2C1] status [0000000f]
    [   10.612527] acpi:acpi_util_eval_error: ACPI: \_SB_.PC00.I2C2: ACPI: utils: Evaluate [_STA]: AE_NOT_FOUND
    [   10.612527] acpi:acpi_bus_get_status: ACPI: Device [I2C2] status [0000000f]
    [   10.612530] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.I2C2.ESSX: ACPI: utils: Return value [15]
    [   10.612531] acpi:acpi_bus_get_status: ACPI: Device [ESSX] status [0000000f]
    [   10.612537] acpi:acpi_util_eval_error: ACPI: \_SB_.PC00.I2C3: ACPI: utils: Evaluate [_STA]: AE_NOT_FOUND
    --
    [   10.613738] acpi:acpi_bus_get_status: ACPI: Device [PSM] status [00000000]
    [   10.613741] acpi:acpi_util_eval_error: ACPI: \_SB_.PC00.I2C2: ACPI: utils: Evaluate [_SEM]: AE_NOT_FOUND
    [   10.613742] i2c_core:i2c_detect_slave_mode: i2c_designware i2c_designware.1: ACPI slave is not supported yet
    --
    [   10.613776] gpiolib:gpiod_get_index: i2c_designware i2c_designware.1: No GPIO consumer scl found
    [   10.613780] acpi:acpi_device_notify: ACPI: \_SB_.PC00.I2C2: ACPI: Bound to device i2c-1
    [   10.613790] i2c_core:i2c_register_adapter: i2c i2c-1: adapter [Synopsys DesignWare I2C adapter] registered
    --
    [   10.613888] acpi:acpi_bus_get_status: ACPI: Device [XDCI] status [00000000]
    [   10.613905] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.I2C2.ESSX: ACPI: utils: Return value [15]
    [   10.613906] acpi:acpi_bus_get_status: ACPI: Device [ESSX] status [0000000f]
    [   10.613914] acpi:acpi_device_notify: ACPI: \_SB_.PC00.I2C2.ESSX: ACPI: Bound to device i2c-ESSX8336:00
    [   10.613922] i2c_core:i2c_new_client_device: i2c i2c-1: client [ESSX8336:00] registered with bus id i2c-ESSX8336:00
    [   10.614234] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.I2C3.HWSP: ACPI: utils: Return value [15]
    --
    [   10.625204] acpi:acpi_device_probe: ACPI: Found driver [tpm_crb] for device [TPM]
    [   10.626263] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state change: D0 -> D3cold
    [   10.626273] intel-lpss 0000:00:15.3: enabling device (0004 -> 0006)
    [   10.626450] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state changed to D3hot
    [   10.626464] acpi:acpi_pci_irq_check_entry: ACPI: PCI: 0000:00:15[D] -> [30]
    --
    [   10.627812] acpi:acpi_bus_get_status: ACPI: Device [I2C1] status [0000000f]
    [   10.627813] acpi:acpi_util_eval_error: ACPI: \_SB_.PC00.I2C2: ACPI: utils: Evaluate [_STA]: AE_NOT_FOUND
    [   10.627814] acpi:acpi_bus_get_status: ACPI: Device [I2C2] status [0000000f]
    [   10.627819] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.I2C2.ESSX: ACPI: utils: Return value [15]
    [   10.627820] acpi:acpi_bus_get_status: ACPI: Device [ESSX] status [0000000f]
    [   10.627829] acpi:acpi_util_eval_error: ACPI: \_SB_.PC00.I2C3: ACPI: utils: Evaluate [_STA]: AE_NOT_FOUND
    --
    [   10.784106] acpi:acpi_device_probe: ACPI: Found driver [video] for device [GFX0]
    [   10.803856] acpi:acpi_device_notify: platform snd-soc-dummy: No ACPI support
    [   10.803903] snd_soc_core:snd_soc_register_dai: snd-soc-dummy snd-soc-dummy: ASoC: dynamically register DAI snd-soc-dummy
    [   10.803904] snd_soc_core:snd_soc_register_dai: snd-soc-dummy snd-soc-dummy: ASoC: Registered DAI 'snd-soc-dummy-dai'
    --
    [   11.849678] mousedev: PS/2 mouse device common for all mice
    [   11.849921] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state change: D3hot -> D0
    [   11.849932] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state changed to D0
    [   11.851307] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C0: PM: Power state change: D3hot -> D0
    --
    [   11.854117] videodev: Linux video capture interface: v2.00
    [   11.861456] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   11.861471] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   11.861480] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   11.861507] i2c_core:i2c_register_driver: i2c-core: driver [es8316] registered
    [   11.863378] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    --
    [   11.863855] acpi:acpi_device_notify: hwmon hwmon1: No ACPI support
    [   11.863887] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   11.863897] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   11.863903] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   11.863955] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    --
    [   11.867136] acpi:acpi_device_notify: powercap intel-rapl:1: No ACPI support
    [   11.867182] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   11.867188] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   11.867192] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   11.867275] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    --
    [   12.057552] i2c_core:i2c_new_scanned_device: i2c i2c-13: Probing failed, no device found
    [   12.057623] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.057634] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.057638] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.057697] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    --
    [   12.062416] iTCO_wdt iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
    [   12.062441] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.062451] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.062456] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.062505] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    --
    [   12.062974] gpiolib:gpiod_get_index: usb 1-10: No GPIO consumer reset found
    [   12.062989] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.062995] acpi:acpi_device_notify: bluetooth hci0: No ACPI support
    [   12.062995] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.063002] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.063011] acpi:acpi_device_notify: rfkill rfkill1: No ACPI support
    --
    [   12.063043] usbcore: registered new interface driver btusb
    [   12.063084] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.063100] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.063107] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.063139] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.063214] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.063215] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    [   12.063268] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.064267] Bluetooth: hci0: Bootloader revision 0.4 build 0 week 30 2018
    --
    [   12.065275] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
    [   12.066326] acpi:acpi_iommu_configure_id: snd_hda_intel 0000:00:1f.3: Adding to IOMMU failed: -19
    [   12.066330] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
    [   12.066838] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    [   12.066841] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.066875] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.066883] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.067435] Bluetooth: hci0: Found device firmware: intel/ibt-19-0-4.sfi
    --
    [   12.072248] usbcore: registered new interface driver uvcvideo
    [   12.072261] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.072311] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    [   12.072316] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.072356] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.108274] acpi:acpi_iommu_configure_id: sof-audio-pci-intel-tgl 0000:00:1f.3: Adding to IOMMU failed: -19
    [   12.108279] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
    [   12.108333] snd_sof_pci:sof_pci_probe: sof-audio-pci-intel-tgl 0000:00:1f.3: PCI DSP detected
    [   12.108340] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
    --
    [   12.108555] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_exit [i915])
    [   12.108656] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.108659] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    [   12.108695] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.108710] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.110097] snd_soc_core:snd_soc_register_dai: dmic-codec dmic-codec: ASoC: dynamically register DAI dmic-codec
    [   12.110100] snd_soc_core:snd_soc_register_dai: dmic-codec dmic-codec: ASoC: Registered DAI 'dmic-hifi'
    [   12.110121] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.110154] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    [   12.110157] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.110186] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.114769] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: checking for capabilities at offset 0xc00
    [   12.114774] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: found ML capability at 0xc00
    [   12.114775] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: checking for capabilities at offset 0x800
    [   12.114779] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: found DSP capability at 0x800
    [   12.114781] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: checking for capabilities at offset 0x500
    [   12.114786] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: found GTS capability at 0x500
    [   12.114787] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: checking for capabilities at offset 0x1f00
    [   12.114791] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: found DRSM capability at 0x1f00
    [   12.114792] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: checking for capabilities at offset 0x700
    [   12.114797] snd_sof_intel_hda_common:hda_dsp_ctrl_get_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: found SPIB capability at 0x700
    [   12.114811] snd_sof_intel_hda_common:hda_dsp_stream_init: sof-audio-pci-intel-tgl 0000:00:1f.3: hda global caps = 0x1009701
    [   12.114812] snd_sof_intel_hda_common:hda_dsp_stream_init: sof-audio-pci-intel-tgl 0000:00:1f.3: detected 9 playback and 7 capture streams
    [   12.114904] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
    [   12.114905] snd_sof_intel_hda_common:hda_dsp_probe: sof-audio-pci-intel-tgl 0000:00:1f.3: using IPC IRQ 145
    [   12.114978] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIR: 00000000 at  00000044
    [   12.114980] snd_sof_intel_hda_common:hda_init_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: PP capability, will probe DSP later.
    [   12.117729] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIR: 00000040 at  00000048
    [   12.117734] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIW: 00000000 at  00000048
    [   12.119760] snd_sof_intel_hda:hda_codec_detect_mask: sof-audio-pci-intel-tgl 0000:00:1f.3: codec_mask = 0x4
    [   12.119769] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIR: 00000000 at  00000048
    [   12.119771] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIW: 00000040 at  00000048
    [   12.121241] acpi:acpi_evaluate_integer: ACPI: \_SB_.PC00.HDAS.SNDW: ACPI: utils: Return value [1073741824]
    [   12.121245] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: ACPI reports 4 SDW Link devices
    [   12.121247] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: Link 0 not selected in firmware
    [   12.121248] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: Link 1 not selected in firmware
    [   12.121249] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: Link 2 not selected in firmware
    [   12.121251] snd_intel_sdw_acpi:sdw_intel_scan_controller: acpi PRP00001:00: Link 3 not selected in firmware
    [   12.121251] snd_sof_intel_hda_common:hda_init_caps: sof-audio-pci-intel-tgl 0000:00:1f.3: skipping SoundWire, no links enabled
    [   12.121325] snd_sof_intel_hda:hda_codec_probe: sof-audio-pci-intel-tgl 0000:00:1f.3: HDA codec #2 probed OK: response: 80862812
    [   12.121945] acpi:acpi_device_notify: hdaudio ehdaudio0D2: No ACPI support
    [   12.121965] snd_sof_intel_hda:request_codec_module: hdaudio ehdaudio0D2: loading codec module: hdaudio:v80862812r00100000a01
    
    [   12.130425] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: dynamically register DAI ehdaudio0D2
    [   12.130427] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: Registered DAI 'Analog Codec DAI'
    [   12.130428] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: dynamically register DAI ehdaudio0D2
    [   12.130429] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: Registered DAI 'Digital Codec DAI'
    [   12.130429] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: dynamically register DAI ehdaudio0D2
    [   12.130430] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: Registered DAI 'Alt Analog Codec DAI'
    [   12.130431] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: dynamically register DAI ehdaudio0D2
    [   12.130432] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: Registered DAI 'intel-hdmi-hifi1'
    [   12.130433] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: dynamically register DAI ehdaudio0D2
    [   12.130433] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: Registered DAI 'intel-hdmi-hifi2'
    [   12.130434] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: dynamically register DAI ehdaudio0D2
    [   12.130435] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: Registered DAI 'intel-hdmi-hifi3'
    [   12.130435] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: dynamically register DAI ehdaudio0D2
    [   12.130436] snd_soc_core:snd_soc_register_dai: snd_hda_codec_hdmi ehdaudio0D2: ASoC: Registered DAI 'intel-hdmi-hifi4'
    [   12.130461] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 0 in _CRS
    [   12.130504] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    [   12.130506] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 1 in _CRS
    [   12.130538] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up 2 in _CRS
    [   12.130789] snd_sof:sof_set_fw_state: sof-audio-pci-intel-tgl 0000:00:1f.3: fw_state change: 0 -> 2
    [   12.130895] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-tgl 0000:00:1f.3: found 2 format definitions
    [   12.130898] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-tgl 0000:00:1f.3: max channels found 2
    [   12.130899] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-tgl 0000:00:1f.3: Array with 2 dmics
    [   12.130900] snd_intel_dspcfg:intel_nhlt_get_dmic_geo: sof-audio-pci-intel-tgl 0000:00:1f.3: dmic number 2 max_ch 2
    [   12.130903] sof-audio-pci-intel-tgl 0000:00:1f.3: NHLT_DEVICE_I2S detected, ssp_mask 0x1
    [   12.130905] snd_sof_intel_hda_common:hda_machine_select: sof-audio-pci-intel-tgl 0000:00:1f.3: MCLK mask 0x1 found in NHLT
    [   12.130906] sof-audio-pci-intel-tgl 0000:00:1f.3: Overriding topology with MCLK mask 0x1 from NHLT
    [   12.130908] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4
    [   12.130916] snd_sof:snd_sof_load_firmware: sof-audio-pci-intel-tgl 0000:00:1f.3: loading firmware
    [   12.133083] snd_sof:snd_sof_load_firmware_raw: sof-audio-pci-intel-tgl 0000:00:1f.3: request_firmware intel/sof/sof-tgl.ri successful
    [   12.133087] snd_sof:sof_ipc3_fw_parse_ext_man: sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 1 size 0x1a0
    [   12.133089] snd_sof:sof_ipc3_fw_parse_ext_man: sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 6 size 0x20
    [   12.133090] snd_sof_intel_hda_common:hda_dsp_ext_man_get_cavs_config_data: sof-audio-pci-intel-tgl 0000:00:1f.3: FW clock config: HPRO
    [   12.133091] snd_sof:sof_ipc3_fw_parse_ext_man: sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 0 size 0x50
    [   12.133092] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
    [   12.133093] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
    [   12.133094] snd_sof:sof_ipc3_fw_parse_ext_man: sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 2 size 0x70
    [   12.133095] snd_sof:sof_ipc3_get_cc_info: sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: used compiler XCC 12:0:8 <RG-2017.8-linux> used optimization flags -O2
    [   12.133101] snd_sof:sof_ipc3_fw_parse_ext_man: sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 3 size 0x30
    [   12.133103] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
    [   12.133103] snd_sof:sof_ipc3_fw_parse_ext_man: sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 4 size 0x20
    [   12.133104] snd_sof:ipc3_fw_ext_man_get_dbg_abi_info: sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: DBG_ABI 5:3:0
    [   12.133105] snd_sof:sof_ipc3_fw_parse_ext_man: sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 5 size 0x20
    [   12.133106] snd_sof:ipc3_fw_ext_man_get_config_data: sof-audio-pci-intel-tgl 0000:00:1f.3: manifest can hold up to 3 config elements
    [   12.133107] snd_sof:ipc3_fw_ext_man_get_config_data: sof-audio-pci-intel-tgl 0000:00:1f.3: get index 0 token 1 val 384
    [   12.133108] snd_sof:ipc3_fw_ext_man_get_config_data: sof-audio-pci-intel-tgl 0000:00:1f.3: get index 1 token 2 val 1
    [   12.133109] snd_sof:ipc3_fw_ext_man_get_config_data: sof-audio-pci-intel-tgl 0000:00:1f.3: get index 2 token 0 val 0
    [   12.133110] snd_sof:sof_set_fw_state: sof-audio-pci-intel-tgl 0000:00:1f.3: fw_state change: 2 -> 3
    [   12.133115] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIR: 00000002 at  00000048
    [   12.133120] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIW: 00000000 at  00000048
    [   12.133129] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIR: 00000000 at  00000044
    [   12.133134] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIW: 00000004 at  00000044
    [   12.133135] snd_sof:snd_sof_run_firmware: sof-audio-pci-intel-tgl 0000:00:1f.3: booting DSP firmware
    [   12.133151] snd_sof_intel_hda_common:hda_dsp_stream_setup_bdl: sof-audio-pci-intel-tgl 0000:00:1f.3: period_bytes:0x0
    [   12.133153] snd_sof_intel_hda_common:hda_dsp_stream_setup_bdl: sof-audio-pci-intel-tgl 0000:00:1f.3: periods:1
    [   12.133210] snd_sof_intel_hda_common:hda_dsp_stream_hw_params: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x160]=0x40000 successful
    [   12.133229] snd_sof_intel_hda_common:hda_dsp_stream_hw_params: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x160]=0x40000 successful
    [   12.133231] snd_sof_intel_hda_common:hda_dsp_stream_setup_bdl: sof-audio-pci-intel-tgl 0000:00:1f.3: period_bytes:0x0
    [   12.133232] snd_sof_intel_hda_common:hda_dsp_stream_setup_bdl: sof-audio-pci-intel-tgl 0000:00:1f.3: periods:1
    [   12.133276] snd_sof_intel_hda_common:hda_dsp_cl_boot_firmware: sof-audio-pci-intel-tgl 0000:00:1f.3: Attempting iteration 0 of Core En/ROM load...
    [   12.133785] snd_sof_intel_hda_common:hda_dsp_core_power_up: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x4]=0xf010f0f successful
    [   12.133801] snd_sof_intel_hda_common:hda_dsp_core_reset_leave: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x4]=0xf010f0e successful
    [   12.133803] snd_sof_intel_hda_common:hda_dsp_core_run: sof-audio-pci-intel-tgl 0000:00:1f.3: unstall/run core: core_mask = 1
    [   12.133806] snd_sof_intel_hda_common:hda_dsp_core_is_enabled: sof-audio-pci-intel-tgl 0000:00:1f.3: DSP core(s) enabled? 1 : core_mask 1
    [   12.134729] snd_sof_intel_hda_common:cl_dsp_init: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0xd4]=0x80000000 successful
    [   12.206748] snd_sof_intel_hda_common:cl_dsp_init: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x80000]=0x5000001 successful
    [   12.227233] snd_sof_intel_hda_common:hda_cl_copy_fw: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x80000]=0x5 successful
    [   12.227747] snd_sof_intel_hda_common:hda_dsp_stream_trigger: sof-audio-pci-intel-tgl 0000:00:1f.3: FW Poll Status: reg[0x160]=0x140000 successful
    [   12.227750] snd_sof_intel_hda_common:hda_dsp_cl_boot_firmware: sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware download successful, booting...
    [   12.242460] snd_sof:ipc3_log_header: sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx: 0x70000000
    [   12.242462] snd_sof:ipc3_fw_ready: sof-audio-pci-intel-tgl 0000:00:1f.3: DSP is ready 0x70000000 offset 0x81000
    [   12.242580] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
    [   12.242581] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
    [   12.242605] snd_sof:ipc3_get_windows: sof-audio-pci-intel-tgl 0000:00:1f.3:  mailbox upstream 0x81000 - size 0x1000
    [   12.242606] snd_sof:ipc3_get_windows: sof-audio-pci-intel-tgl 0000:00:1f.3:  mailbox downstream 0xa0000 - size 0x2000
    [   12.242607] snd_sof:ipc3_get_windows: sof-audio-pci-intel-tgl 0000:00:1f.3:  stream region 0xc1000 - size 0x1000
    [   12.242607] snd_sof:ipc3_get_windows: sof-audio-pci-intel-tgl 0000:00:1f.3:  debug region 0xc0000 - size 0x800
    [   12.242608] snd_sof:sof_set_fw_state: sof-audio-pci-intel-tgl 0000:00:1f.3: fw_state change: 3 -> 6
    [   12.242612] snd_sof:snd_sof_run_firmware: sof-audio-pci-intel-tgl 0000:00:1f.3: firmware boot complete
    [   12.242614] snd_sof:sof_set_fw_state: sof-audio-pci-intel-tgl 0000:00:1f.3: fw_state change: 6 -> 7
    [   12.242622] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIR: 00000000 at  00000048
    [   12.242631] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIW: 00000002 at  00000048
    [   12.242644] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIR: 00000004 at  00000044
    [   12.242647] snd_sof:snd_sof_pci_update_bits_unlocked: sof-audio-pci-intel-tgl 0000:00:1f.3: Debug PCIW: 00000000 at  00000044
    [   12.242648] snd_sof:sof_probe_continue: sof-audio-pci-intel-tgl 0000:00:1f.3: SOF firmware trace disabled
    [   12.242651] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242652] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'SSP0 Pin'
    [   12.242652] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242653] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'SSP1 Pin'
    [   12.242654] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242655] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'SSP2 Pin'
    [   12.242656] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242656] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'SSP3 Pin'
    [   12.242657] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242658] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'SSP4 Pin'
    [   12.242659] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242659] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'SSP5 Pin'
    [   12.242660] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242661] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'DMIC01 Pin'
    [   12.242662] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242663] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'DMIC16k Pin'
    [   12.242664] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242665] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'iDisp1 Pin'
    [   12.242665] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242666] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'iDisp2 Pin'
    [   12.242668] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242668] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'iDisp3 Pin'
    [   12.242669] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242670] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'iDisp4 Pin'
    [   12.242670] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242671] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'Analog CPU DAI'
    [   12.242672] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242673] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'Digital CPU DAI'
    [   12.242673] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: dynamically register DAI 0000:00:1f.3
    [   12.242674] snd_soc_core:snd_soc_register_dai: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Registered DAI 'Alt Analog CPU DAI'
    [   12.242679] acpi:acpi_device_notify: platform sof-essx8336: No ACPI support
    [   12.242699] snd_sof:sof_machine_register: sof-audio-pci-intel-tgl 0000:00:1f.3: created machine sof-essx8336
    [   12.242703] acpi:acpi_device_notify: auxiliary snd_sof.hda-probes.0: No ACPI support
    [   12.242709] snd_sof_pci:sof_pci_probe_complete: sof-audio-pci-intel-tgl 0000:00:1f.3: Completing SOF PCI probe
    [   12.242746] snd_sof:ipc3_log_header: sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx done: 0x70000000
    [   12.257624] sof-essx8336 sof-essx8336: quirk mask 0x20
    [   12.257626] sof-essx8336 sof-essx8336: quirk SSP0
    [   12.257626] sof-essx8336 sof-essx8336: quirk DMIC enabled
    [   12.257814] i2c i2c-ESSX8336:00: speaker gpio 0 active high, headphone gpio 1 active low
    [   12.257816] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: GPIO lookup for consumer speakers-enable
    [   12.257817] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: using ACPI for GPIO lookup
    [   12.257818] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up speakers-enable-gpios
    [   12.257819] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: _DSD returned ESSX8336:00 0 0 0
    [   12.257828] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: No GPIO consumer speakers-enable found
    [   12.433815] NET: Registered PF_PACKET protocol family
    [   13.123348] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state change: D0 -> D3cold
    [   13.124479] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state changed to D3hot
    [   13.125785] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C0: PM: Power state change: D0 -> D3cold
    --
    [   22.575370] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C0: PM: Power state changed to D0
    [   22.587746] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state change: D3hot -> D0
    [   22.587751] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state changed to D0
    [   22.587883] gpiolib_acpi:acpi_get_gpiod_by_index: acpi GXTP7863:00: GPIO: looking up 0 in _CRS
    [   22.599978] i2c i2c-ESSX8336:00: Resources present before probing
    [   22.599994] sof-essx8336 sof-essx8336: quirk mask 0x20
    [   22.599995] sof-essx8336 sof-essx8336: quirk SSP0
    [   22.599996] sof-essx8336 sof-essx8336: quirk DMIC enabled
    [   22.600155] i2c i2c-ESSX8336:00: speaker gpio 0 active high, headphone gpio 1 active low
    [   22.600157] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: GPIO lookup for consumer speakers-enable
    [   22.600158] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: using ACPI for GPIO lookup
    [   22.600159] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: looking up speakers-enable-gpios
    [   22.600160] gpiolib_acpi:acpi_get_gpiod_by_index: acpi ESSX8336:00: GPIO: _DSD returned ESSX8336:00 0 0 0
    [   22.600167] gpiolib:gpiod_get_index: i2c i2c-ESSX8336:00: No GPIO consumer speakers-enable found
    [   22.600267] i2c i2c-GXTP7863:00: deferred probe pending
    [   22.600269] platform sof-essx8336: deferred probe pending
    [   23.611867] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C0: PM: Power state change: D0 -> D3cold
    [   23.612024] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C0: PM: Power state changed to D3hot
    [   23.788859] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state change: D0 -> D3cold
    [   23.789460] acpi:acpi_device_set_power: ACPI: \_SB_.PC00.I2C2: PM: Power state changed to D3hot
    [   26.593640] acpi:acpi_device_notify: vc vcs2: No ACPI support
    

    @plbossart Is fw_state 7 a SOF_FW_CRASHED?

    [   12.242614] snd_sof:sof_set_fw_state: sof-audio-pci-intel-tgl 0000:00:1f.3: fw_state change: 6 -> 7
    

    How do I activate the firmware trace?

    [   12.242648] snd_sof:sof_probe_continue: sof-audio-pci-intel-tgl 0000:00:1f.3: SOF firmware trace disabled
    
  24. plbossart commented on Feb 1, 2023

    @plbossart
    Member

    You're looking at an 'old' kernel code @tvelazquez, state 7 is
    @SOF_FW_BOOT_COMPLETE: firmware is booted up and functional

    for the trace, you have to keep BIT(0) of the sof_debug parameter set.

    /* Flag definitions used in sof_core_debug (sof_debug module parameter) */
    #define SOF_DBG_ENABLE_TRACE	BIT(0)
  25. plbossart commented on Feb 1, 2023

    @plbossart
    Member

    btw the quirk detection only works if you are able to probe a codec driver...

  26. koffiato commented on Oct 7, 2023

    @koffiato

    I'm assuming there are no updates for this? I wasn't able to get anything to be detected at all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions