Skip to content

[BUG][ICL] Infinix INBook X2 (EM_IC325) ESSX8326 speakers silent, widget card binding permanently deferred, GPIO/mixer verified correct #5856

Description

@IkhwanWahyudi

Hardware:

  • Laptop: Infinix INBook X2 (EM_IC325_200B_V1.0)
  • CPU: Intel Core i3-1005G1 (Ice Lake)
  • Audio codec: ESSX8326 (ACPI ID ESSX8326, driver reports as ESSX8336, see note below)
  • BIOS: ICL_IC325_LPDDR4X_200B_V2.0.28

Environment:

  • Distro: CachyOS
  • Kernel: 7.1.4-cachyos
  • sof-firmware: 2025.12.2-1

Symptom

Speaker produces a pop/click sound on audio stream init/close only. No actual audio output regardless of source (browser, aplay, speaker-test, paplay). Bluetooth audio works normally, confirming the PipeWire/WirePlumber stack itself is functional.


Root cause identified: widget card binding never completes

dmesg on every boot shows:

[6.048834] sof-essx8336 sof-essx8336: ASoC: Parent card not yet available, widget card binding deferred

No "binding complete" (or equivalent) log follows. The deferral is permanent for the entire session, confirmed across multiple reboots and kernel versions (7.1.3, 7.1.4). This means snd_soc_sof_es8336 never successfully binds to snd_soc_es8326 as parent card, so the ASoC widget/DAPM graph never becomes fully active, which is consistent with hardware producing only an init/deinit pop and no sustained signal.


Codec identity clarification

i2c-ESSX8326:00 and es8326 i2c-ESSX8326:00: assuming static mclk confirm the actual codec is ES8326, not ES8336, despite being handled by the sof-essx8336/snd_soc_sof_es8336 machine driver and sof-icl-es8336-ssp0.tplg topology (expected, no ES8326 specific SOF machine driver exists upstream). snd_soc_es8326 module is loaded and correctly claims the i2c device.


GPIO investigation, confirmed NOT the problem

$ sudo cat /sys/kernel/debug/gpio | grep -i speaker
gpio-145 (speakers-enable) out lo ACTIVE LOW

gpio-145 is active-low and driven lo = enabled. Live monitoring via gpioinfo//sys/kernel/debug/gpio across different quirk values:

quirk gpio-145 (speakers-enable) gpio-130 (headphone-enable)
0x80 default (HEADPHONE_GPIO) HIGH = inactive LOW = active (jack-detect misread, nothing plugged)
0x50 (SPEAKERS_EN_GPIO1 + JD_INVERTED) LOW = active (forced correctly) not separately claimed

Kernel default auto-detected quirk mask on this device: 0x80 (confirmed via dmesg | grep "quirk mask").


Suspected root cause

Combination of:

  1. Missing or incomplete DMI entry for Infinix Infinix INBOOK X2 in sof_es8336_quirk_table (sound/soc/intel/boards/sof_es8336.c) for the ICL platform specifically (a working entry exists for the Tiger Lake X2 Plus variant, per @Abhinav5383, but ICL behaves differently)
  2. Amplifier likely requires an additional I2C init sequence (vendor specific register writes) beyond generic GPIO enable and DAPM widget power up, something only implemented in the proprietary Windows driver, not currently modeled in the generic ES8326/SOF codec driver

Related issues


Happy to provide additional dmesg/ACPI dumps, test patches, or build/test custom kernels if that would help narrow this down further.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions