Hardware
|
|
| Laptop |
Honor MagicBook Art 14, HONOR-MRA_XXX-M1100, SKU C233 |
| CPU |
Intel Meteor Lake-P (Core Ultra 7) |
| BIOS |
3.05 (2025-03-07), latest available |
| Codec |
Realtek ALC256 (HDA, subsystem 0x1ee72060) — works, drives 2 tweeters |
| Amp |
Realtek RT1308 (ACPI: 10EC1308:00, path \_SB_.PC00.I2C3.HDC1, I2C addr 0x10, I2S+I2C mode — not SoundWire) |
| Kernel |
6.17.0-20-generic |
| Stack |
SOF sof-hda-dsp, PipeWire 1.4.7, topology sof-hda-generic-4ch.tplg |
The laptop has 6 speakers: 2 tweeters (ALC256) + 4 woofers (RT1308). Only the 2 tweeters work under Linux.
Root cause
BIOS physically disables the I2C3 controller at hardware level.
1. GNVS variable I2SC = 0x00 at GNVS_BASE + 0x84E (physical addr 0x65DD8866).
RT1308 _STA in DSDT:
If (((I2SC == 0x02) && (CDIS != One))) { Return(0x0F) }
With I2SC=0x00, _STA returns 0 → ACPI device disabled:
$ cat /sys/bus/acpi/devices/10EC1308:00/status
0
2. I2C3 PCI device is absent — only 00:15.0 (I2C0) and 00:15.1 (I2C1) are visible in lspci.
3. I2C3 MMIO (0x48192D1000) returns 0xFFFFFFFF — hardware is physically off. Address overlaps with Thunderbolt BAR2 (PCI 00:0d.3).
4. NHLT table has no RT1308 endpoint — only BT on SSP4 and 4 DMIC.
5. SoundWire bus exists (/sys/bus/soundwire/) but is completely empty — no devices, no drivers.
6. Warm reboot from Windows does not help — tested multiple times.
ACPI details
I2SB = 0x03 (I2C3 bus index)
- RT1308 I2C address:
0x10 (7-bit)
- GNVS
OperationRegion: SystemMemory, 0x65DD8018, 0x0DAA
I2SC at offset 0x84E within GNVS
SOF state
- No MTL + RT1308 (I2C mode) machine driver or topology exists in SOF project
- Existing RT1308 topologies target ADL/TGL with SoundWire
- ABI mismatch noted:
sof-hda-generic-ace1-4ch.tplg reports ABI 3:29:1 vs kernel ABI 3:23:1
Questions
- Is there a known way to force-enable I2C3 from Linux (ACPI method, EFI variable write)?
- Is a machine driver/topology for MTL + RT1308-via-I2C feasible?
- Should this be reported to Honor/Intel as a BIOS bug?
Full ACPI tables, dmesg, and additional diagnostics available on request.
Hardware
\_SB_.PC00.I2C3.HDC1, I2C addr 0x10, I2S+I2C mode — not SoundWire)sof-hda-generic-4ch.tplgThe laptop has 6 speakers: 2 tweeters (ALC256) + 4 woofers (RT1308). Only the 2 tweeters work under Linux.
Root cause
BIOS physically disables the I2C3 controller at hardware level.
1. GNVS variable I2SC = 0x00 at
GNVS_BASE + 0x84E(physical addr0x65DD8866).RT1308
_STAin DSDT:With I2SC=0x00,
_STAreturns 0 → ACPI device disabled:2. I2C3 PCI device is absent — only
00:15.0(I2C0) and00:15.1(I2C1) are visible in lspci.3. I2C3 MMIO (
0x48192D1000) returns0xFFFFFFFF— hardware is physically off. Address overlaps with Thunderbolt BAR2 (PCI00:0d.3).4. NHLT table has no RT1308 endpoint — only BT on SSP4 and 4 DMIC.
5. SoundWire bus exists (
/sys/bus/soundwire/) but is completely empty — no devices, no drivers.6. Warm reboot from Windows does not help — tested multiple times.
ACPI details
I2SB = 0x03(I2C3 bus index)0x10(7-bit)OperationRegion:SystemMemory, 0x65DD8018, 0x0DAAI2SCat offset0x84Ewithin GNVSSOF state
sof-hda-generic-ace1-4ch.tplgreports ABI 3:29:1 vs kernel ABI 3:23:1Questions
Full ACPI tables, dmesg, and additional diagnostics available on request.