Skip to content

Binary speaker volume on Lenovo Yoga Pro 7 14IMH9 (Meteor Lake + ALC287) #5579

@spasoye-json

Description

@spasoye-json

Binary Speaker Volume Control on Lenovo Yoga Pro 7 14IMH9 (Intel Meteor Lake + Realtek ALC287)

System Information

  • Laptop Model: Lenovo Yoga Pro 7 14IMH9 (LNVNB161216)
  • CPU: Intel Core Ultra 9 (Meteor Lake-P)
  • Audio Controller: Intel Meteor Lake-P HD Audio Controller (PCI ID: 8086:7a50, rev 20)
  • Audio Codec: Realtek ALC287 (Subsystem: 17aa:38cf)
  • OS: Fedora 43 Workstation
  • Kernel: 6.17.5-300.fc43.x86_64
  • Firmware: linux-firmware-20251021-1.fc43
  • Audio Stack: PipeWire 1.4.9 + WirePlumber

Problem Description

The internal laptop speakers exhibit binary volume control behavior: the speakers are either:

  • Completely muted (when volume control is set to mute), OR
  • Always at maximum loudness regardless of volume level setting (5%, 50%, or 100% all produce maximum volume)

There is no gradual volume adjustment between mute and maximum.

Expected Behavior

Volume control should provide smooth, gradual adjustment from 0% to 100%, with each percentage point producing a proportionally different loudness level.

Actual Behavior

  1. Mute (0%): Speakers are silent ✓ (works correctly)
  2. Any level 1-100%: Speakers play at maximum volume ✗ (broken)
    • Setting volume to 5% → maximum loudness
    • Setting volume to 50% → maximum loudness
    • Setting volume to 100% → maximum loudness

Audio Hardware Details

Codec Information

Codec: Realtek ALC287
Vendor Id: 0x10ec0287
Subsystem Id: 0x17aa38cf
Revision Id: 0x100002

Speaker Node (from codec dump)

Node 0x14 [Pin Complex] - Internal Speaker
Pin Default: 0x90170110
Node 0x17 [Pin Complex] - Bass Speaker
Pin Default: 0x90170111

ALSA Mixer Controls

The Speaker control shows volume changes in ALSA:

$ amixer -c 1 sget 'Speaker'
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  # Volume changes reflected here but not in actual hardware output

PipeWire Sink Flags

Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY

Diagnostic Steps Taken

  1. Disabled DRC (Dynamic Range Compression):

    amixer -c 1 sset 'Post Mixer Analog Playback DRC switch' off
    • Result: Made speakers slightly quieter but still binary behavior
  2. Tried forcing software volume control via:

    • .asoundrc configuration
    • WirePlumber rules with api.alsa.ignore-dB = true
    • Result: No effect, hardware still exhibits binary behavior
  3. Verified ALSA controls respond to commands:

    • ALSA mixer values change correctly
    • PipeWire volume adjustments propagate to ALSA
    • Issue is at hardware/firmware level, not software
  4. Confirmed USB audio works correctly:

    • Logitech USB Headset H340 has smooth volume control
    • Problem is specific to internal speakers

Hypothesis

The smart speaker amplifier (likely TI TAS2781 or similar) is not properly controlled by the SOF (Sound Open Firmware) driver. The amplifier appears to be operating in a binary on/off mode instead of accepting fine-grained volume commands from the codec.

Similar Issues

This appears similar to other Lenovo laptop audio issues with smart amplifiers:

  • ThinkPad P1 Gen 6 audio issues
  • Legion series amplifier control problems
  • Other Meteor Lake + Realtek combinations

Request

This hardware configuration appears to need:

  1. SOF topology updates for Meteor Lake + ALC287 + smart amplifier combination
  2. Proper amplifier initialization/control via I2C
  3. UCM profile adjustments for Lenovo Yoga Pro 7 14IMH9

Additional Information

Complete diagnostic data including:

  • Full codec dump
  • ALSA mixer controls
  • PipeWire sink configuration
  • Kernel dmesg audio logs
  • SOF firmware versions

Full diagnostic logs: https://gist.github.com/spasoye-json/fb4c6b140b07c1c50f23df08d2aa4cc1

Workaround

Currently using USB headset as the internal speakers are unusable due to always-maximum volume.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Not SOF FW/DriverNot using SOF audio FW and driverOEM HDA codec customizationIssue with HDA codec verbs/configuration by OEMRealtekIssue with codec/Amp from Realtek

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions