getsolus / packages

Solus Package Monorepo & Issue Tracker
65 stars 81 forks source link

ASUS ROG Zephyrus M16 2023 - Weak Speaker Sound #726

Closed marcvg closed 11 months ago

marcvg commented 12 months ago

Summary

Hi,

There is a known issue with the Cirrus CS35L41 amp inside to drive the bass/mid-range speakers. Unfortunately the driver for it won't use it as it is missing a series of properties stored in the _DSD of the ACPI.

Information & fix patch: https://asus-linux.org/wiki/cirrus-amps/

Is this something that can be supported/enabled OOTB in Solus for these 2023 ROG laptops? I'm sure more people will encounter this issue until fixed upstream.

Cheers, Marc.

Steps to reproduce

  1. Create Solus 4.4 Live-USB
  2. Boot on ASUS ROG Zephyrus 2023 laptop (or any laptop with Cirrus CS35L41 amp)
  3. Play some techno music

Expected result

Hearing full sound

Actual result

Hearing low volume chirping noises

Environment

Repo

Shannon (stable)

Desktop Environment

Budgie

System details

Hardware model: ASUSTeK COMPUTER INC. ROG Zephyrus M16 GU604VY_GU604VY Budgie version: 10.8.1 OS: Solus 4.4 Harmony OS Type: 64bit Kernel: Linux 6.5.7-259.current

marc@workstation-marc ~ $ dmesg | grep _DSD [ 4.170877] cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Error: ACPI _DSD Properties are missing for HID CSC3551. [ 4.174240] cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Error: ACPI _DSD Properties are missing for HID CSC3551.

From dsdt.dsl:

Scope (_SB.PC00.SPI0)
{
    Device (SPK1)
    {
        Name (_HID, "CSC3551")  // _HID: Hardware ID
        Name (_SUB, "10431473")  // _SUB: Subsystem ID
        Name (_UID, One)  // _UID: Unique ID
        Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
        {
            Name (SBUF, ResourceTemplate ()
            {
                SpiSerialBusV2 (0x0000, PolarityLow, FourWireMode, 0x08,
                    ControllerInitiated, 0x003D0900, ClockPolarityLow,
                    ClockPhaseFirst, "\\_SB.PC00.SPI0",
                    0x00, ResourceConsumer, , Exclusive,
                    )
                SpiSerialBusV2 (0x0001, PolarityLow, FourWireMode, 0x08,
                    ControllerInitiated, 0x003D0900, ClockPolarityLow,
                    ClockPhaseFirst, "\\_SB.PC00.SPI0",
                    0x00, ResourceConsumer, , Exclusive,
                    )
                GpioIo (Exclusive, PullUp, 0x0000, 0x0000, IoRestrictionOutputOnly,
                    "\\_SB.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0142
                    }
                GpioIo (Exclusive, PullDown, 0x0000, 0x0000, IoRestrictionOutputOnly,
                    "\\_SB.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x012B
                    }
                GpioIo (Shared, PullUp, 0x0064, 0x0000, IoRestrictionInputOnly,
                    "\\_SB.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x012F
                    }
                GpioInt (Edge, ActiveBoth, Shared, PullUp, 0x0064,
                    "\\_SB.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x012F
                    }
            })
            Return (SBUF) /* \_SB_.PC00.SPI0.SPK1._CRS.SBUF */
        }

        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            Return (0x0F)
        }

        Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
        {
        }
    }
}

Other comments

Tagging @ReillyBrogan

Forum link

ReillyBrogan commented 11 months ago

The kernel support for this will be in our 6.6 kernel

marcvg commented 10 months ago

FYI.. sound is working after applying _DSD patch with latest kernel 6.6.7 & firmware updates. Thanks @ReillyBrogan @HarveyDevel