Skip to content

Commit f60ed8f

Browse files
committed
tests: lib: filter out SSP timeouts
In legacy SSP driver, DMA request request is enabled during FIFO drain, causing DMA keeps filling FIFO and preventing empty, which leads to timeout. ERROR is logged by poll_for_register_delay() while ssp_empty_tx_fifo() returns WARN, so there is inconsistent error handling between this two functions. Issue#4369 describe issue on older firmware version. Signed-off-by: Mateusz Junkier <mateusz.junkier@intel.com>
1 parent d651139 commit f60ed8f

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

case-lib/lib.sh

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -547,13 +547,20 @@ check_error_in_fw_logfile()
547547
dloge "file NOT FOUND: '$1'"
548548
return 1
549549
}
550+
551+
# Filter out SSP timeout errors and check for remaining errors
552+
SSP_timeout_msgs=(
553+
-e 'poll timeout reg .* mask .* val .* us .*'
554+
-e 'ssp_empty_tx_fifo() warning: timeout'
555+
)
550556
# -B 2 shows the header line when the first etrace message is an ERROR
551557
# -A 1 shows whether the ERROR is last or not.
552558
if (set -x
553-
grep -B 2 -A 1 -i --word-regexp -e 'ERR' -e 'ERROR' -e '<err>' -e OSError "$1"
559+
grep -v "${SSP_timeout_msgs[@]}" "$1" | \
560+
grep -B 2 -A 1 -i --word-regexp -e 'ERR' -e 'ERROR' -e '<err>' -e OSError
554561
); then
555562
# See internal Intel bug #448
556-
dlogw 'An HTML display bug hides the bracketed Zephyr &lt;loglevels&gt; in this tab,'
563+
dlogw 'An HTML display bug hides the bracketed Zephyr <loglevels> in this tab,'
557564
dlogw 'switch to the tab with the complete logs to see the log levels.'
558565
return 1
559566
fi
@@ -578,10 +585,10 @@ func_lib_check_sudo()
578585
func_lib_enable_pipewire()
579586
{
580587
dlogi "Starting Pipewire..."
581-
588+
582589
sudo systemctl --global unmask pipewire{,-pulse}.{socket,service}
583590
systemctl --user unmask pipewire{,-pulse}.{socket,service}
584-
sudo systemctl --global unmask wireplumber.service
591+
sudo systemctl --global unmask wireplumber.service
585592
systemctl --user unmask wireplumber.service
586593

587594
systemctl --user start pipewire{,-pulse}.{socket,service}
@@ -596,7 +603,7 @@ func_lib_enable_pipewire()
596603
func_lib_check_and_disable_pipewire()
597604
{
598605
dlogi "Check if pipewire is running"
599-
606+
600607
if systemctl is-active --user --quiet pipewire{,-pulse}.{socket,service}; then func_lib_disable_pipewire; else dlogi "Pipewire not running"; fi
601608
}
602609

@@ -835,7 +842,7 @@ extract_format_number() {
835842
else
836843
die "Error: Unknown format: %s\n"
837844
fi
838-
}
845+
}
839846

840847
# Initialize the parameters using for audio testing.
841848
# shellcheck disable=SC2034
@@ -984,7 +991,7 @@ arecord_opts()
984991
dlogc "arecord $SOF_ALSA_OPTS $SOF_ARECORD_OPTS $*"
985992
# shellcheck disable=SC2086
986993
arecord $SOF_ALSA_OPTS $SOF_ARECORD_OPTS "$@"
987-
fi
994+
fi
988995
else
989996
die "Unknown ALSA tool: ${SOF_ALSA_TOOL}"
990997
fi
@@ -993,7 +1000,7 @@ arecord_opts()
9931000
# Get the ID of the first sink/source of a given type, e.g. "Speaker" or "Headphones". Print an empty line if ID not found.
9941001
get_id_of_pipewire_endpoint()
9951002
{
996-
# $ wpctl status returns list of all endpoints managed by wireplumber. We filter by given sink/source type, which returns something like this:
1003+
# $ wpctl status returns list of all endpoints managed by wireplumber. We filter by given sink/source type, which returns something like this:
9971004
# │ * 48. sof-soundwire Headphones [vol: 0.40] (or without the * when it's not the current default)
9981005
# We filter out everything but ID, and only take the first line of the output (if there's more that one object of that type we ignore the rest)
9991006

@@ -1505,7 +1512,7 @@ check_soundfile_for_glitches()
15051512
if [ -f "$result_filename" ]; then
15061513
dlogi "Analyzing $result_filename file..."
15071514
if python3 "$SCRIPT_HOME"/tools/analyze-wav.py "$result_filename"; then
1508-
dlogi "$result_filename file is correct"
1515+
dlogi "$result_filename file is correct"
15091516
else
15101517
dlogw "Found issues in $result_filename file"
15111518
glitched_files=$((glitched_files+1))

0 commit comments

Comments
 (0)