From nobody Tue Apr 7 05:43:29 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (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 AE26934252D for ; Sun, 15 Mar 2026 20:11:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773605495; cv=none; b=N/hmrDWccTRlg8025QtrL44XlaCyZjBy/Uae80GYXoGVqzugKjw36+xAG28mVbs8RvHma/qqgg/l8Rza6pme7YP5VJURRroKRYqD98VSnsNN/hGBTKuJ4GJdRp7vgtYHSy/m9RGHNWWKwWsIvz14WgwlngodPbWY38qH3O+62Z0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773605495; c=relaxed/simple; bh=hDrJpbA0d29qtNBTwJVfQ6Y9whssZXtIxirIh0KzzXk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T/G9omlNmEHI+mEq6IjULmsipzWhfOBMWuwYmsmjPzXGNQhDqaeFj5EhwxExSVaarAI+uZZ0r9a2A4BYq/LdNdPA4vTLCrVCaWm/uThv9tsITe6/76iN0N50Em0y20NUKezIL4BY7kg7rzpINtaDboI9HJNGb2l9EDQ/VvEnkUI= 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=jlT+Pv2J; arc=none smtp.client-ip=209.85.221.45 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="jlT+Pv2J" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-439b73f4ab4so4390684f8f.1 for ; Sun, 15 Mar 2026 13:11:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=starlabs-systems.20230601.gappssmtp.com; s=20230601; t=1773605491; x=1774210291; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dPx7W1wrRFKN3fnyGqD27na/IBsbOnOXlhpyAbDCums=; b=jlT+Pv2J50YzgTXy2FOgtSywyrY6bPKwkNoWTygxByn1vgf5y/5mbRZhQc2wlJwIzk EcD3LqdojTz7G6AGA+2kAOgB/K7jmsL0+QLzaHXNDDtF7JvXPXmQR3ue4ZGPHVN/xaCH lgqC9ng90PvioPH4DqgzwrQqAfn6TR53fPqeX6qW0r7S0yN8A66igesgz7baZIPEVJ5Z 3WsBSWRHARNp+jZq9xnMsTY/+PscNDdxvk+4Xu1CyiEvHGd42rm3dkDVEfILZQZIhnCR XRJ0uophienTZwGiK+qqfkaANkkbPUHNcSUcAoYUUJv/RJub8lVrgBbL+QNuOJbG8d7c 884g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773605491; x=1774210291; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dPx7W1wrRFKN3fnyGqD27na/IBsbOnOXlhpyAbDCums=; b=VbmjKuBmfdw40SgV8IsnCbtS1Qy0Oi9D6cVngOnOvMlO0j6A2FuI0OF+gxsl7xsH6t jqGTaJ+hNhiIC3xbpIkcFrN+Ss72EuZXfz0D/Tj0Vmxineh+l1s2uJNwt7E1WpwYU23U wP+vfQ3Sxnt2RG9hwIs54ZE6ZpqP7w6YR8wkBBuf3hRnDrApwZuKgWr45wfxOiZgFujf AVv+lChIgJWZNp3TsRNkO23eJWScNJIDhdwgJ4ZqbUHim6B3I8i0ITYkcfSFCOXEltuq kUH8BiqA7JK3DXXyR3Bst4MqJIbr9op+aOpVYeJDrsLmtApK8JUSr51UhsK+fDwUhIp2 DH3g== X-Gm-Message-State: AOJu0YzrPs9KT2dHxLd7wralCzip65WRJEZrMRaSBpEJzJH7bOfeRL90 vWtRebcDg+qdQXQ9fXxMufU1bv5P8P2BYoYqqE9IZZGXspmEqhPDybAEcKFvZjfO1ldIGy+7K6c WQKs= X-Gm-Gg: ATEYQzxVvkgUqzR+SUIABf2W/FTC9Z3b59Ehho0G59TW58MwVmGgT5E6ksXgz774Sze T10jbrY1WeHrpob1LPlt+4fzpLMoSv9ux8EsAdArdPAKrXVo54YSN/orEsqiwr0b8R2UEPBDgfb iKUfHn6HxtmJIqfgOtuazk+/JGWZjBOZ4MhHYgEOM9BIE8wRYlMVaA3YVv9n/sGAXOEBQ1msyXa AWbpT2esY87keaXGUhdgIeRS+dhK6qY2cXYvx8GFTEdq82m+O9TMmbpUou9ScziJtHgQJY5Z39j L4y18cMxPVBnWMmbgUKCALzs8hdfuzk/zlloBfJ9n6Iqyyn/Nxi3tMSC5bvGEQwQpqUgmTXX4Bf xxetgmt2toWRhgOEeRmn1dY7zOtO1mTdPREEypofvyk8+3kwJ6dQXpuioi7uVz+qG3cjqi3xl+s 43pgYkDwRYWIOKMr/e0Qec9/XTGMyggeNeVq2esgv5GtWuSG3VSFM= X-Received: by 2002:a05:6000:310d:b0:439:c42f:10c4 with SMTP id ffacd0b85a97d-43a04d8c249mr20156769f8f.15.1773605490529; Sun, 15 Mar 2026 13:11:30 -0700 (PDT) Received: from starbook ([217.155.46.38]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b457cfa07sm695811f8f.6.2026.03.15.13.11.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 13:11:29 -0700 (PDT) From: Sean Rhodes To: linux-kernel@vger.kernel.org Cc: Jaroslav Kysela , Takashi Iwai , Chris Chiu , Kailang Yang , Stefan Binding , Edip Hazuri , Zhang Heng , linux-sound@vger.kernel.org Subject: [PATCH v4] ALSA: hda/realtek: Sequence GPIO2 on Star Labs StarFighter Date: Sun, 15 Mar 2026 20:11:27 +0000 Message-ID: <20260315201127.33744-1-sean@starlabs.systems> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260314193434.8237-1-sean@starlabs.systems> References: <20260314193434.8237-1-sean@starlabs.systems> 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" The initial StarFighter quirk fixed the runtime suspend pop by muting speakers in the shutup callback before power-down. Further hardware validation showed that the speaker path is controlled directly by LINE2 EAPD on NID 0x1b together with GPIO2 for the external amplifier. Replace the shutup-delay workaround with explicit sequencing of those controls at playback start and stop: - assert LINE2 EAPD and drive GPIO2 high on PREPARE - deassert LINE2 EAPD and drive GPIO2 low on CLEANUP This avoids the runtime suspend pop without a sleep, and also fixes pops around G3 entry and display-manager start that the original workaround did not cover. Fixes: 1cb3c20688fc ("ALSA: hda/realtek: Fix speaker pop on Star Labs StarF= ighter") 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 Tested-by: Sean Rhodes Signed-off-by: Sean Rhodes --- sound/hda/codecs/realtek/alc269.c | 38 ++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/a= lc269.c index 4c49f1195e1b..b1a52fb4bb8a 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -1017,12 +1017,30 @@ static int alc269_resume(struct hda_codec *codec) return 0; } =20 -#define STARLABS_STARFIGHTER_SHUTUP_DELAY_MS 30 +#define ALC233_STARFIGHTER_SPK_PIN 0x1b +#define ALC233_STARFIGHTER_GPIO2 0x04 =20 -static void starlabs_starfighter_shutup(struct hda_codec *codec) +static void alc233_starfighter_update_amp(struct hda_codec *codec, bool on) { - if (snd_hda_gen_shutup_speakers(codec)) - msleep(STARLABS_STARFIGHTER_SHUTUP_DELAY_MS); + snd_hda_codec_write(codec, ALC233_STARFIGHTER_SPK_PIN, 0, + AC_VERB_SET_EAPD_BTLENABLE, + on ? AC_EAPDBTL_EAPD : 0); + alc_update_gpio_data(codec, ALC233_STARFIGHTER_GPIO2, on); +} + +static void alc233_starfighter_pcm_hook(struct hda_pcm_stream *hinfo, + struct hda_codec *codec, + struct snd_pcm_substream *substream, + int action) +{ + switch (action) { + case HDA_GEN_PCM_ACT_PREPARE: + alc233_starfighter_update_amp(codec, true); + break; + case HDA_GEN_PCM_ACT_CLEANUP: + alc233_starfighter_update_amp(codec, false); + break; + } } =20 static void alc233_fixup_starlabs_starfighter(struct hda_codec *codec, @@ -1031,8 +1049,16 @@ static void alc233_fixup_starlabs_starfighter(struct= hda_codec *codec, { struct alc_spec *spec =3D codec->spec; =20 - if (action =3D=3D HDA_FIXUP_ACT_PRE_PROBE) - spec->shutup =3D starlabs_starfighter_shutup; + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + spec->gpio_mask |=3D ALC233_STARFIGHTER_GPIO2; + spec->gpio_dir |=3D ALC233_STARFIGHTER_GPIO2; + spec->gpio_data &=3D ~ALC233_STARFIGHTER_GPIO2; + break; + case HDA_FIXUP_ACT_PROBE: + spec->gen.pcm_playback_hook =3D alc233_starfighter_pcm_hook; + break; + } } =20 static void alc269_fixup_pincfg_no_hp_to_lineout(struct hda_codec *codec, --=20 2.51.0