From nobody Sat Feb 7 11:05:04 2026 Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) (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 5BE283EBF37 for ; Sun, 1 Feb 2026 12:19:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769948374; cv=none; b=LP3jthVlfY0kLcuyjKv+E49jeYrOagK60RLehPBp2MqE3q6U8SyV7vmBW4lVdXn05nK0bVnNNIRlPV3eYtpOGsTPL0JFFdB/ReJh7to8aDp/0s629v8uZ1drgTCokieNEef15NJw3J9b1TJrt/ohM74sqV4zYI+jfQLYD9b3Ytw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769948374; c=relaxed/simple; bh=vpvrUQ6SR13n6UQ+Qw37LQPI9d/TCtCU4RuryCrZhlU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=a4PhgY7WXr+Hz3N0IUu7aLJMaAUqrrkKdXbVMJ3TDpMzylQvm/tIFZrWVFUnnMzq19mREmcCXQTD6w5nSjaY7TZs534hLa67WBWa37Y04q2jGa4jMQo+9gBy5pY/GSHdWuwtTGZ2ieC+bmW3NReiSCNmZMKFT8rvgKUnV4Ftrp8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YBa+m+nM; arc=none smtp.client-ip=209.85.219.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YBa+m+nM" Received: by mail-qv1-f44.google.com with SMTP id 6a1803df08f44-88a2e3bd3cdso43386966d6.0 for ; Sun, 01 Feb 2026 04:19:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769948372; x=1770553172; 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=jbQ+XF/YZfUppOsEgsgu6FHxy4cqdfO/hHUnFr5FpWs=; b=YBa+m+nMoCnR6MYtiPNfLXLHMGQ4JQzOSZrx3rOhF2lLMFtP5eoT+EV4rbM1iGucvt E2om49Uehd4SIXcB+MOeJRTSZS5+N5tgMXLS6RzZ/9NkVuPR2sD2Oj7TE2OCIiVRlp4K e/3D0NavMkbUcSbf5/nlcprcKbAvtOpRZtxqsmTvbQBe65fZgJKovzAA3lh/a6+/iygH JLf01zVnqFobza0lx84s9p9vw37b9YF2Ba6R7samHBeUurFyZbuTEl13Mu4oI5g0IVGK cVRY2cleTikQuzMbGW3WXXW4jfYKKHnqxdLY89r3ILX1lFAy37mNn6Qoumd6a0aOKCU4 s/fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769948372; x=1770553172; 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=jbQ+XF/YZfUppOsEgsgu6FHxy4cqdfO/hHUnFr5FpWs=; b=J6dlbXBCSXZpN8k8uV5KUEV4qCG1F25Vc0PoRHaRhIkXFCMhJAHeyh2UyNKXrbCZRo i1RfqS7J5hsZjLWEsBybvAP8QieqsPq9JhGMKoR9M5WQMmp+RepPq68b1JmTnZis42+n RwzhytdPyALLiNjHaZyAHDZrEfQ6lZNPNSNXcMmLDDB550mq0Wns/5pp4caddJJoLTE6 zc4zD6KsJpJEbnIs47H65VTC3xdfUk6YblDPyQbszIfuSnNlxBCNlAD66lyqTcXoR2jO 7KOeQl7CbqjB7t4NfPM3/RikV3z87VZueTwQkJcyDzZfrgDsAy7ORgIEvm7HssBxC3CY edGA== X-Forwarded-Encrypted: i=1; AJvYcCVkMGPnmSNnqchQn0NkdGXWkGdSzBLmFcCZ05wIhQpLUAmJhpdPeWuilJlur2H0FErNtnI3pJCJSeJZ/Sw=@vger.kernel.org X-Gm-Message-State: AOJu0YwClI+eDQjDTnXj607l29oqH1+CTMlpproDvDqti9Fax9518H7H PiaUbHXDMnTJz5Y+Ptap3MppJAzWqZ1h9fqgfoEo5uCT5KIuoy1NouH3 X-Gm-Gg: AZuq6aI32jkDcWukDDHqDNPwB5075tY16iABq5bOhfQEMKFSn7v0bRijFXdOq4r8Av4 b8YUV9EnIZwcSx1nG5cwVpFpWFXBnrW+xYsBmwJUIM9+uZnj/90465Uzyi/iB84mtg3CFTvniDW oSscXrTc3BHqdeOrRn2kcKlUOzzijz7jvH4FSX/XArwaAg4XdQGoP4zqgszBlHBwopdr3F3ZQFf 2y0IWDn/MTI8+98KWtID5+KfNQ1JiWmLQ5kuC3z8SF9wlbVWWhr9Jg0NSqvrIRa9Rtix2GL44io jIAHLDhVXQSyKhR2Vtv9C3/qhCZsJr0+9+k+9ff0XXA7H5jDpATKTWhkw9dHHXdgjIDArJI8//X e0mVV3AYHhoBiTgNuaUi0Ci/abR62mD5KTeZQHBjV6N6xwjkgn+6+/49kV4CfKMmGspEngHeGqu X9ZXqiLwwjR7YhGA== X-Received: by 2002:a05:6214:1ccd:b0:894:6c2d:532f with SMTP id 6a1803df08f44-894ea8fd7c9mr110307136d6.9.1769948372249; Sun, 01 Feb 2026 04:19:32 -0800 (PST) Received: from fedora ([84.17.53.175]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8c711b7c670sm992436285a.6.2026.02.01.04.19.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Feb 2026 04:19:31 -0800 (PST) From: Tagir Garaev To: broonie@kernel.org Cc: pierre-louis.bossart@linux.intel.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Tagir Garaev Subject: [RFC PATCH] ASoC: Intel: sof_es8336: Add DMI quirk for Huawei BOD-WXX9 Date: Sun, 1 Feb 2026 15:17:28 +0300 Message-ID: <20260201121728.16597-1-tgaraev653@gmail.com> X-Mailer: git-send-email 2.52.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" Add DMI entry for Huawei Matebook D (BOD-WXX9) with HEADPHONE_GPIO and DMIC quirks. This device has ES8336 codec with: - GPIO 16 (headphone-enable) for headphone amplifier control - GPIO 17 (speakers-enable) for speaker amplifier control - GPIO 269 for jack detection IRQ - 2-channel DMIC Hardware investigation shows that both GPIO 16 and 17 are required for proper audio routing, as headphones and speakers share the same physical output (HPOL/HPOR) and are separated only via amplifier enable signals. RFC: Seeking advice on GPIO control issue: GPIO values change in driver (gpiod_get_value() shows logical value changes) but not physically (debugfs gpio shows no change). The same gpiod_set_value_cansleep() calls work correctly in probe context with msleep(), but fail when called from DAPM event callbacks. Context information from diagnostics: - in_atomic=3D0, in_interrupt=3D0, irqs_disabled=3D0 - Process context: pipewire - GPIO 17 (speakers): changes in driver, no physical change - GPIO 16 (headphone): changes in driver, no physical change In Windows, audio switching works without visible GPIO changes, suggesting possible ACPI/firmware involvement. Any suggestions on how to properly control these GPIOs from DAPM events would be appreciated. Signed-off-by: Tagir Garaev --- sound/soc/intel/boards/sof_es8336.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/s= of_es8336.c index 7dd02d700d7e..8cedfce99edc 100644 --- a/sound/soc/intel/boards/sof_es8336.c +++ b/sound/soc/intel/boards/sof_es8336.c @@ -363,6 +363,15 @@ static int sof_es8336_quirk_cb(const struct dmi_system= _id *id) * if the topology file is modified as well. */ static const struct dmi_system_id sof_es8336_quirk_table[] =3D { + { + .callback =3D sof_es8336_quirk_cb, + .matches =3D { + DMI_MATCH(DMI_SYS_VENDOR, "HUAWEI"), + DMI_MATCH(DMI_PRODUCT_NAME, "BOD-WXX9"), + }, + .driver_data =3D (void *)(SOF_ES8336_HEADPHONE_GPIO | + SOF_ES8336_ENABLE_DMIC) + }, { .callback =3D sof_es8336_quirk_cb, .matches =3D { --=20 2.52.0