From nobody Mon Sep 28 23:59:00 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 77FC647884D for ; Fri, 14 Aug 2026 18:19:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.214.172 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786731579; cv=pass; b=KgPIle/l9AbRmBsd/o/TTrnsuAFYzuuTi8JV9f9hpLiSNVald0IEH6H17wGxosca5TzNo2mwiHP7gTsZcNYG/mJIzVKN0hbIA7NMFfw95mofKyudplugH/KQXQbtwMIYBMWxBiP3zPQWkIboJ4sR34KDVk5wxQ5NvBIBFmmVfp8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786731579; c=relaxed/simple; bh=LcAqTqA0RY4kW6avjqwFtcYLceumU573IXvcBFm8XPI=; h=MIME-Version:From:Date:Message-ID:Subject:To:Cc:Content-Type; b=WqDJFmHlCBGMh+QrQeE9DjV0R3q+vuR5x6CYEVsIMv+/qukNszNpraGnUETId6i0bg1qsK8EJftEKkBTInNwqv88ybkSorHhET8Jr6T+VUKr9REFZNcF+xKE694AE8hGZO0TQ276fbSEGEFQMQD4Jz5Jk4SfETF1egJom9DhjCY= ARC-Authentication-Results: i=2; 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=Dwhm8uz6; arc=pass smtp.client-ip=209.85.214.172 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="Dwhm8uz6" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2caced6038eso16235595ad.0 for ; Fri, 14 Aug 2026 11:19:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1786731578; cv=none; d=google.com; s=arc-20260327; b=M3cMwgLc0G5idgy6YNynzFJOd7jQjpc5YGSMbljHb3DAVfuvwMQgelDQS6rSCVsbYV RLt1gX+E85ESnBuXmHUmuHf30m+RGup+DnjLKPthroKY4z5IcM8tKL8UwMpY/09U0jiN KQNepIDGjk89L4rYn0zsd4WW5NmGYGTVeXjG66XiCo18NSYKyECcb8pM+52qGNV/AocG ODuGYAgJq98GN/pV94Iu4b3djeAuGNzxKudl2t8EGsAag95PgeURXvoOJKsoIRXDkcQV iaN+v23sMlj8ogM37M4cf+QJrkg50gmtZddVr+itiE7lUAp8llrfuL/7FvMPRjhA9H9Z bIHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:mime-version:dkim-signature; bh=gxhb/0WoxKlmt7xxDsHfWlzsiixeDkyQq4izvjY45wk=; fh=Po4wPtghXzvK68I2ZZElKi2lvwtORb8aGnPDHveklbY=; b=lIepIZWNpbMaF+dUysPcWLkFFTohSLn52F23jJcq1fca6zNcPbhdeDHmy4rn/M/tsn gDEWu4j8TEGT1uGCnnrChwG7K7xlu6nFwiHo2q4iOsXIIE0daPggmcJWd/hrwDa7RqT+ bW3JrpF7spttd9NIt5loxqq2dDv+PjgvRTjTp3Rx6WbJMe2AzxyHupLo8pvfzQ4kkej+ 81qQppAfgUoiGbqIeJcXRmh4Hw4J1Dl2b73Fa/uG4AuqEWSR5UvORhMo/eWgQ6tGx53v A3sStyxCnZYqb/4EUZ0vNFNoGGv6eZlqtgWERAoyb/wYeaAXWaY9ctBKOkLtMBxSelQx 755Q==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786731578; x=1787336378; darn=vger.kernel.org; h=content-type:cc:to:subject:message-id:date:from:mime-version:from :to:cc:subject:date:message-id:reply-to:content-type; bh=gxhb/0WoxKlmt7xxDsHfWlzsiixeDkyQq4izvjY45wk=; b=Dwhm8uz6TsW0DTycWyFGY7Zo+5bRsDPse4OmjsQT1QNcTgaZ18H3rhzt1hQNE76c+3 nc/b5Ay9pHPnSyaQls0YDLwLHZhQRAnrBeOL/ZN7eqTQ0XxsR+QKB1xfz9TfIEPgHMn0 hupdPLMjYtYX3/YM5Isl4XNr3FwXAJ9MK39lisOPK5o1fyIdNTzBMAc//L2l+JAUx9EX NL8taiQr3BxYIOFjvz8p8xlBPPS/KwmvqZXOuKjxKYWDK6xz7YSXSCiEp6lA+EVj4etz 8BxY2OnkuNfe4nieUmWkrIEji+3NVHUr4NuZSJtsWYjCAgA7i0YcTvddD8kPTLT/Xbs3 mTwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786731578; x=1787336378; h=content-type:cc:to:subject:message-id:date:from:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=gxhb/0WoxKlmt7xxDsHfWlzsiixeDkyQq4izvjY45wk=; b=AovZ5IRHs0+N/6GQh2dOqhJtIgvsDUIER5mh8DvOsicoZ/R/LfPNHoYvRyvq7r92bH 8XGN+9k5TsXC6MI2ma/GsqAhttCdXdYOpALmCGBgUB98v2A8sGCWTQrC84dkXVFpQMmm ZlORZvDbRZXk8w/kvVx0s3/KQ+SuIs9YjyejV9Ex+723qF+ZvAXIs7tBEqBrvDoogKZR 81REk0VbEpPOlBjPpGQTH4TdSsijM9qQngAcG4Kc2he/6uPtUQ3W6hcf0GCcKZviXVcr QRkB+CqvBuis8wnhz3F76GuZ5mZ4pHA/s+LpEXx6nFW3HflpSomXOfaMAaPlYhKulp76 X7xg== X-Forwarded-Encrypted: i=1; AHgh+Ro02Kx1XEUm0z+w1Kbrbpfk/g4gN8vs69bkcvvo0cLvzoVwiZjA0/d5vXyfu6p/N/0DXBsxUpZ3+LcrNzE=@vger.kernel.org X-Gm-Message-State: AOJu0YyItzO91Ri/ZAwR5v03sZRA8qyPwSC+JkIRW0asJ5UPEiFBYRcD MhC0cHLhvvTd62d9BoxnlqCqhIzuELaQzHCkQDMeZqQexM/QafEuY2WUnxIl3xWNoHumEuPe4Mx /+GsX7sZnZ5K1T6eXHStO+MNNzf624aI= X-Gm-Gg: AR+sD10KOUEKK6YG4/4HB6eVskQsdCxJTf6gvn83+RYtS7t3xtW4jyy72m//9KEssF7 2/XPV2M3xDKp1tXCUUAdDQ7KKP3kp/OakQU5guWhYvoCdFEUI/RfyKR2e4j05gSs/6YNYjtOU96 b+X8J37NuC/WcytGr82xkKHQBzRbW20fBCvcg+prmGhcxjnWWmbYqDkKTrBzum822Jw+c6j2pxR QB+to6t7iMG3+DlwaDiFrgYP6NAsZd0i/2srdkIMstDeTsY4+w+vSaPFIaJ4kuuLk/rDxk0t2ej WV38hDYBnYgH/Pyb897Spb/k4akiUrQ10Bw5LBTeXAKz3rs09BPkO3bkEOD9UUVPyVkymhyI578 = X-Received: by 2002:a17:902:db03:b0:2d3:c3b:c7cc with SMTP id d9443c01a7336-2d37f5d0f8fmr158085335ad.3.1786731577655; Fri, 14 Aug 2026 11:19:37 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: =?UTF-8?B?5p2O5YiZ6Imv?= Date: Sat, 15 Aug 2026 02:19:26 +0800 X-Gm-Features: AcwNN1WTjHUlToVDLZgmy6sKgVI3-wYQzA5yhm11nmuEqKKJ1HyM5DEQcC21Oas Message-ID: Subject: [PATCH] ASoC: tas2781: Add delay before block checksum retry to prevent deadlock To: shenghao-ding@ti.com, kevin-lu@ti.com, baojun.xu@ti.com, sen@ti.com, lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From 3ee77f811a91350caa56783b76251cd8218e2263 Mon Sep 17 00:00:00 2001 From: Zeliang Li Date: Sat, 15 Aug 2026 01:52:57 +0800 Subject: [PATCH] ASoC: tas2781: Add delay before block checksum retry to prevent deadlock During runtime resume from power-saving states, the tas2781 amplifier firmware block calibration checksum verification may occasionally fail due to transient instabilities on the I2C bus or the chip's internal power rails. When tasdev_block_chksum() detects a checksum mismatch, it correctly decrements block->nr_retry and returns -EAGAIN to trigger a re-transmission loop. However, because there is no delay introduced before repeating the loop, all available retry attempts are exhausted almost instantly (within microseconds) before the hardware can fully stabilize. This causes a permanent calibration failure, triggering "ERROR_PRAM_CRCCHK", and results in a silent speaker deadlock after pausing/resuming media on modern laptops. Fix this by adding a 2ms usleep_range() delay before initiating a checksum re-try loop, allowing the hardware sufficient time to stabilize. Signed-off-by: Zeliang Li --- sound/soc/codecs/tas2781-fmwlib.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/tas2781-fmwlib.c b/sound/soc/codecs/tas2781-fmwlib.c index dcbeb9618195..09cbee7a55dc 100644 --- a/sound/soc/codecs/tas2781-fmwlib.c +++ b/sound/soc/codecs/tas2781-fmwlib.c @@ -1765,9 +1765,16 @@ static int tasdev_block_chksum(struct tasdevice_priv *tas_priv, ret =3D -EAGAIN; block->nr_retry--; - if (block->nr_retry <=3D 0) + if (block->nr_retry <=3D 0) { set_err_prg_cfg(block->type, &tas_priv->tasdevice[chn]); + + } else { + /* Give the chip and I2C bus time to stabilize before + * next re-transmission attempt. + */ + usleep_range(2000, 2500); + } } else tas_priv->tasdevice[chn].err_code &=3D ~ERROR_PRAM_CRCCHK; --=20 2.53.0 --=20 KISS =3D=3D Keep it simple,stupid~:-) http://lizeliang.org