From nobody Fri Apr 3 04:52:59 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5A612E7162 for ; Thu, 19 Feb 2026 20:14:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771532071; cv=none; b=WPbxUj08vTbO05VPrGWmsichMDG+SCNVelA5ty97aTqeqwpYPTahwqAvFyZ9Tm4PLkCk3AhFqu8ZDlTMRJi50WPC+GPM8H3AJAmYqb5LK/ymRndipGd+qMTbU/QrhkeOu2DyM3+dyKyYC8jOQ+LjBkVlXW6f4vAfLNCto/QWXYU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771532071; c=relaxed/simple; bh=jDyL0qh/dpJye64qSsHuwF4DVOZLRQOXsUwwOv00TO4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=BMSLr78GfH8fjp1LktHORb8Fcvm3NqhkN8pAHy+ysgnbN0Qt33EHsBE4r471V/ue9d66I8Zry6FoWmaMfn0UgFLGr9D503qat6uPSkFqZjIH5r9v6UR3NwSaIlIwA6349SK+FnZD+mxEhAAve8vHqMyHgZtLZMIQXFalHi7kVT4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=starlabs.systems; spf=pass smtp.mailfrom=starlabs.systems; dkim=pass (2048-bit key) header.d=starlabs-systems.20230601.gappssmtp.com header.i=@starlabs-systems.20230601.gappssmtp.com header.b=Y9CHsTap; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=starlabs.systems Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starlabs.systems Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=starlabs-systems.20230601.gappssmtp.com header.i=@starlabs-systems.20230601.gappssmtp.com header.b="Y9CHsTap" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4807068eacbso11590395e9.2 for ; Thu, 19 Feb 2026 12:14:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=starlabs-systems.20230601.gappssmtp.com; s=20230601; t=1771532068; x=1772136868; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=1xKXhp4Fjqh4vlJBlQb5Cv14X7D63Yn5e1MBMaZJXKw=; b=Y9CHsTapMvATqr6i4iAeuhE5Wsb5BE6jtLIxgcqREofKaT9lmduLbg6gIWoYCdAR4A 8gRW3GiFr/1PXaFir9r19oqe3aU2aPDzvLg/kx8z1yTmO9XHGOlkQKkfIMUgC+xc/ahq m8kR61zIGwf6y/Di3Iot1Zm8Y2E19Df1cUtOvXlPvdA7iQ86WKraZ650sPHOtJy9CFIn DrMnv5DMXrhRmp6dv+sWPsQli/kvS3W1aVDnVOiNtv6qtVnnqCLpk1hQpbolO2nxysN5 XTzDJRqARasOd3WAhlnDp2XYolkgcQnpL1lW0MQVsF4HLY+7nsXJifZ3PgRhnDjaAaob LcvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771532068; x=1772136868; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=1xKXhp4Fjqh4vlJBlQb5Cv14X7D63Yn5e1MBMaZJXKw=; b=qsDtysTO+xpdq/SnyPYw+eZYSV+XWrg/spN5F6mInycd7RDHBgh8KZpHRzPCo85++I AqjQ3qPU4PYSR15cb9/SHmSAimFcqgqyGj51bFbEkx0ezS3X5q847np6cNDFJcBbnlzp XjWPgPDxE+FBTiv1SznfTc/iUKoO/0MFxbNUuJTr+eDFA5Huzc3nr2iHB2eKDxVMd7Ux PqeK2CLZt7rk3ox+JQvb0V0GcPRhBEkI5c9JanzXhqdb5tq7pAvxz+Tg4mVwdgvSnAwp PisBtMqL37M0SrYlpqYgqXMknyQTJxBUeQ3StDcDiGTYMljj2On4gCD26BEux+PY8GjC GVXA== X-Gm-Message-State: AOJu0YzB6/Iwsdo766eQxNLmYV2J1lyAyhVqlNyIh++Twr87diEgKIb7 3whrPZO5AwOMIwl6h/3QJ02YItbnd1F/b70f5VPGk3TySi3r4Qa7xIuBi11S90fjTE/G4J22NOw XQRA= X-Gm-Gg: AZuq6aIQq+fWuq0qn2DLgy1hGweTcIQHFjFKSefIgXnWVdkTa1KAacWG7+lBguRfqCb Or7TDcKXylhv60TR5mPVqy6ALRdj07Yzwwy89whruS8+8cEqlj46fjFSYXr+6V6xPpZNvEQ0UXA XBwMFtFXH2XadjVFNEW5W3yC2wXtqsYGM2mZNW9UAZ+R9D/MQMZhimEvxd4LH17+MHweAShWhfr X/mkQR0R+RZUXeblQXW26eFX8VADckLlerbmhuiqlsbnZTiT8kMWVSEUDjBggZUiVCWbQKyTlcD mFZuXnY79x6tuGO6osu0eMxOc+Jopt+e3Wo+bWGm4AGebqhgkgwJ0p4Y8EB46LCF+8tuAGsAxW/ wxEXiK0oFkO5sRAix7T59gmTYuspo0yw6K7WLWcXDSixtJE2MqXLgdV6ozjBQ2TZzbMj2Ok0DBM ayKl1fa1tG0FbjRaaEPAq+Y94Fly2OCorvhpKnc6RwA21i0NyQG+U= X-Received: by 2002:a05:600c:3110:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-48398af0206mr142458725e9.35.1771532067676; Thu, 19 Feb 2026 12:14:27 -0800 (PST) Received: from starbook ([217.155.46.38]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483a31bfef4sm37975515e9.7.2026.02.19.12.14.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 12:14:27 -0800 (PST) From: Sean Rhodes To: linux-kernel@vger.kernel.org Cc: Jaroslav Kysela , Takashi Iwai , Stefan Binding , Kailang Yang , Chris Chiu , Edip Hazuri , linux-sound@vger.kernel.org, Sean Rhodes Subject: [PATCH v6] ALSA: hda/realtek: Fix speaker pop on Star Labs StarFighter Date: Thu, 19 Feb 2026 20:14:26 +0000 Message-ID: <4d5fb71b132bb283fd41c622b8413770b2065242.1771532060.git.sean@starlabs.systems> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On Star Labs StarFighter (Realtek ALC233/235), the internal speakers can emit an audible pop when entering or leaving runtime suspend. Mute the speaker output paths via snd_hda_gen_shutup_speakers() in the Realtek shutup callback before the codec is powered down. This is enough to avoid the pop without special EAPD handling. Test results: - runtime PM pop fixed - still reaches D3 (PCI 0000:00:1f.3 power_state=3DD3hot) - does not address pops on cold boot (G3 exit) or around display manager start/shutdown journalctl -k (boot): - snd_hda_codec_alc269 hdaudioC0D0: ALC233: picked fixup for PCI SSID 7017:2014 - snd_hda_codec_alc269 hdaudioC0D0: autoconfig for ALC233: line_outs=3D1 (0x1b/0x0/0x0/0x0/0x0) type:speaker Cc: Jaroslav Kysela Cc: Takashi Iwai Cc: Stefan Binding Cc: Kailang Yang Cc: Chris Chiu Cc: Edip Hazuri Cc: linux-sound@vger.kernel.org Cc: linux-kernel@vger.kernel.org Suggested-by: Takashi Iwai Tested-by: Sean Rhodes Signed-off-by: Sean Rhodes --- sound/hda/codecs/realtek/alc269.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/a= lc269.c index b66965a52107..00a92da0ba05 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -1017,6 +1017,24 @@ static int alc269_resume(struct hda_codec *codec) return 0; } =20 +#define STARLABS_STARFIGHTER_SHUTUP_DELAY_MS 30 + +static void starlabs_starfighter_shutup(struct hda_codec *codec) +{ + if (snd_hda_gen_shutup_speakers(codec)) + msleep(STARLABS_STARFIGHTER_SHUTUP_DELAY_MS); +} + +static void alc233_fixup_starlabs_starfighter(struct hda_codec *codec, + const struct hda_fixup *fix, + int action) +{ + struct alc_spec *spec =3D codec->spec; + + if (action =3D=3D HDA_FIXUP_ACT_PRE_PROBE) + spec->shutup =3D starlabs_starfighter_shutup; +} + static void alc269_fixup_pincfg_no_hp_to_lineout(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -3802,6 +3820,7 @@ enum { ALC245_FIXUP_CLEVO_NOISY_MIC, ALC269_FIXUP_VAIO_VJFH52_MIC_NO_PRESENCE, ALC233_FIXUP_MEDION_MTL_SPK, + ALC233_FIXUP_STARLABS_STARFIGHTER, ALC294_FIXUP_BASS_SPEAKER_15, ALC283_FIXUP_DELL_HP_RESUME, ALC294_FIXUP_ASUS_CS35L41_SPI_2, @@ -6238,6 +6257,10 @@ static const struct hda_fixup alc269_fixups[] =3D { { } }, }, + [ALC233_FIXUP_STARLABS_STARFIGHTER] =3D { + .type =3D HDA_FIXUP_FUNC, + .v.func =3D alc233_fixup_starlabs_starfighter, + }, [ALC294_FIXUP_BASS_SPEAKER_15] =3D { .type =3D HDA_FIXUP_FUNC, .v.func =3D alc294_fixup_bass_speaker_15, @@ -7370,6 +7393,7 @@ static const struct hda_quirk alc269_fixup_tbl[] =3D { SND_PCI_QUIRK(0x2782, 0x1705, "MEDION E15433", ALC269VC_FIXUP_INFINIX_Y4_= MAX), SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME), SND_PCI_QUIRK(0x2782, 0x4900, "MEDION E15443", ALC233_FIXUP_MEDION_MTL_SP= K), + SND_PCI_QUIRK(0x7017, 0x2014, "Star Labs StarFighter", ALC233_FIXUP_STARL= ABS_STARFIGHTER), SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC= ), SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NU= C8_RUGGED), SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10), @@ -7466,6 +7490,7 @@ static const struct hda_model_fixup alc269_fixup_mode= ls[] =3D { {.id =3D ALC298_FIXUP_TPT470_DOCK_FIX, .name =3D "tpt470-dock-fix"}, {.id =3D ALC298_FIXUP_TPT470_DOCK, .name =3D "tpt470-dock"}, {.id =3D ALC233_FIXUP_LENOVO_MULTI_CODECS, .name =3D "dual-codecs"}, + {.id =3D ALC233_FIXUP_STARLABS_STARFIGHTER, .name =3D "starlabs-starfight= er"}, {.id =3D ALC700_FIXUP_INTEL_REFERENCE, .name =3D "alc700-ref"}, {.id =3D ALC269_FIXUP_SONY_VAIO, .name =3D "vaio"}, {.id =3D ALC269_FIXUP_DELL_M101Z, .name =3D "dell-m101z"},