summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorZeliang Li <lizeliang.linux@gmail.com>2026-08-15 03:45:55 +0800
committerTakashi Iwai <tiwai@suse.de>2026-08-17 09:54:39 +0200
commitf6635d64e783ad66d800fefa57f897294004ea65 (patch)
tree8976977d32dd8181ab5053ad8571544d7b74eeb4 /tools/perf/scripts/python
parent19b02fecd8f857909af779afe3816e487ac10cd0 (diff)
ALSA: hda/tas2781: Add hardware stabilization delay during firmware load retries
During runtime resume transitions, loading calibration data blocks to the tas2781 amplifier may intermittently trigger transmission failures or block checksum mismatches (-EAGAIN) due to un-stabilized power rails or I2C bus glitches. The loop in tasdev_load_blk() decrements block->nr_retry and attempts an immediate re-transmission upon receiving -EAGAIN. However, without any inter-retry delay, all available retry slots are exhausted within less than a microsecond—long before the hardware can physically settle. This leads to permanent "ERROR_PRAM_CRCCHK" deadlocks and silent speakers on modern laptops after resuming media. Fix this cleanly by introducing a 2ms usleep_range() delay directly inside the tasdev_load_blk() retry paths prior to each 'continue' statement. This grants the chip sufficient time to stabilize before the next transmission attempt without introducing unnecessary latency on final failures. Signed-off-by: Zeliang Li <lizeliang.linux@gmail.com> Link: https://patch.msgid.link/20260815-master-v2-1-b4ea03c8b59e@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions