Report issues by shell files with: git ls-files '*.sh' | xargs shellcheck --exclude=SC2162 Address the following: - SC1087: Use braces when expanding arrays - SC1091: Not following - SC2004: `$`/`${}` is unnecessary on arithmetic variables - SC2024: `sudo` doesn't affect redirects - SC2034: foo appears unused. Verify it or export it - SC2086: Double quote to prevent globbing and word splitting - SC2087: Quote `EOF` - SC2115: Use `"${var:?}"` to ensure this never expands to `/*` - SC2148: Add a shebang Addresses (at least partially) some POSIX/dash issues: - SC2113: `function` keyword is non-standard - SC3010: In POSIX sh, `[[` `]]` is undefined - SC3014: In POSIX sh, `==` in place of `=` is undefined - SC3020: In POSIX sh, `&>` is undefined - SC3046: In POSIX sh, `source` in place of `.` is undefined Does not address: - SC2162: `read` without `-r` will mangle backslashes - Any other POSIX/dash-specific issues Signed-off-by: Tim Crawford <tcrawford@system76.com>
38 lines
897 B
Bash
Executable File
38 lines
897 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
if [ "${EUID}" != "0" ]
|
|
then
|
|
exec sudo "$0" "$@"
|
|
fi
|
|
|
|
set -e
|
|
|
|
for codec in /dev/snd/hw*
|
|
do
|
|
codec_id="$(basename "${codec}")"
|
|
codec_sys="/sys/class/sound/${codec_id}"
|
|
vendor="$(cat "${codec_sys}/vendor_name")"
|
|
chip="$(cat "${codec_sys}/chip_name")"
|
|
if [ "${vendor}" = "Realtek" ]
|
|
then
|
|
echo "# ${codec_id}: ${vendor} ${chip}"
|
|
|
|
# Realtek vendor node
|
|
nid=0x20
|
|
|
|
# Get processing capabilities
|
|
proc_cap="$(hda-verb "${codec}" "${nid}" PARAMETERS PROC_CAP 2>/dev/null | cut -d " " -f 3)"
|
|
|
|
seq "$(("${proc_cap}" >> 8))" | while read index
|
|
do
|
|
# Set coefficient index
|
|
index_hex="$(printf "0x%02x\n" "${index}")"
|
|
hda-verb "${codec}" "${nid}" SET_COEF_INDEX "${index_hex}" >/dev/null 2>&1
|
|
|
|
# Get processing coefficient
|
|
value="$(hda-verb "${codec}" "${nid}" GET_PROC_COEF 0 2>/dev/null | cut -d " " -f 3)"
|
|
echo "${index_hex}: ${value}"
|
|
done
|
|
fi
|
|
done
|