Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 31 additions & 7 deletions userspace/usr/comma/sound/sound_init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,45 @@
/usr/comma/sound/adsp-start.sh

echo "waiting for sound card to come online"
while [ ! -d /proc/asound/sdm845tavilsndc ] || [ "$(cat /proc/asound/card0/state 2> /dev/null)" != "ONLINE" ] ; do
while [ ! -f /proc/asound/card0/state ] || [ "$(cat /proc/asound/card0/state 2> /dev/null)" != "ONLINE" ] ; do
sleep 0.01
done
echo "sound card online"

while ! /usr/comma/sound/tinymix controls | grep -q "SEC_MI2S_RX Audio Mixer MultiMedia1"; do
find_control() {
local control

for control in "$@"; do
if /usr/comma/sound/tinymix controls | grep -F -q "$control"; then
echo "$control"
return 0
fi
done

return 1
}

if grep -q mici /sys/firmware/devicetree/base/model; then
CAPTURE_CANDIDATES=("Comma Audio Mixer SEC_MI2S_TX" "MultiMedia1 Mixer SEC_MI2S_TX")
else
CAPTURE_CANDIDATES=("Comma Audio Mixer TERT_MI2S_TX" "MultiMedia1 Mixer TERT_MI2S_TX")
fi

PLAYBACK_CANDIDATES=("SEC_MI2S_RX Audio Mixer Comma Audio" "SEC_MI2S_RX Audio Mixer MultiMedia1")

while true; do
PLAYBACK_CONTROL=$(find_control "${PLAYBACK_CANDIDATES[@]}")
CAPTURE_CONTROL=$(find_control "${CAPTURE_CANDIDATES[@]}")
if [ -n "$PLAYBACK_CONTROL" ] && [ -n "$CAPTURE_CONTROL" ]; then
break
fi
sleep 0.01
done
echo "tinymix controls ready"

/usr/comma/sound/tinymix set "SEC_MI2S_RX Audio Mixer MultiMedia1" 1
if grep -q mici /sys/firmware/devicetree/base/model; then
/usr/comma/sound/tinymix set "MultiMedia1 Mixer SEC_MI2S_TX" 1
else
/usr/comma/sound/tinymix set "MultiMedia1 Mixer TERT_MI2S_TX" 1
/usr/comma/sound/tinymix set "$PLAYBACK_CONTROL" 1
/usr/comma/sound/tinymix set "$CAPTURE_CONTROL" 1
if /usr/comma/sound/tinymix controls | grep -F -q "TERT_MI2S_TX Channels"; then
/usr/comma/sound/tinymix set "TERT_MI2S_TX Channels" Two
fi

Expand Down
Loading