Skip to content

Commit c187c3c

Browse files
committed
alsactl: Rough prototype
Few state files (PTL family), more debug logs. Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
1 parent ca7e8f2 commit c187c3c

File tree

4 files changed

+347
-2
lines changed

4 files changed

+347
-2
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
state.sofhdadsp {
2+
control.1 {
3+
iface MIXER
4+
name 'Headphone Playback Volume'
5+
value.0 60
6+
value.1 60
7+
comment {
8+
access 'read write'
9+
type INTEGER
10+
count 2
11+
range '0 - 87'
12+
dbmin -6525
13+
dbmax 0
14+
dbvalue.0 -2625
15+
dbvalue.1 -2625
16+
}
17+
}
18+
control.2 {
19+
iface MIXER
20+
name 'Headphone Playback Switch'
21+
value.0 true
22+
value.1 true
23+
comment {
24+
access 'read write'
25+
type BOOLEAN
26+
count 2
27+
}
28+
}
29+
control.6 {
30+
iface MIXER
31+
name 'Capture Source'
32+
value Mic
33+
comment {
34+
access 'read write'
35+
type ENUMERATED
36+
count 1
37+
item.0 'Internal Mic'
38+
item.1 'Internal Mic 1'
39+
item.2 Mic
40+
}
41+
}
42+
control.7 {
43+
iface MIXER
44+
name 'Capture Volume'
45+
value.0 30
46+
value.1 30
47+
comment {
48+
access 'read write'
49+
type INTEGER
50+
count 2
51+
range '0 - 63'
52+
dbmin -1725
53+
dbmax 3000
54+
dbvalue.0 1125
55+
dbvalue.1 1125
56+
}
57+
}
58+
control.8 {
59+
iface MIXER
60+
name 'Capture Switch'
61+
value.0 true
62+
value.1 true
63+
comment {
64+
access 'read write'
65+
type BOOLEAN
66+
count 2
67+
}
68+
}
69+
control.12 {
70+
iface MIXER
71+
name 'Master Playback Volume'
72+
value 87
73+
comment {
74+
access 'read write'
75+
type INTEGER
76+
count 1
77+
range '0 - 87'
78+
dbmin -6525
79+
dbmax 0
80+
dbvalue.0 -2625
81+
}
82+
}
83+
control.13 {
84+
iface MIXER
85+
name 'Master Playback Switch'
86+
value true
87+
comment {
88+
access 'read write'
89+
type BOOLEAN
90+
count 1
91+
}
92+
}
93+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
state.sofsoundwire {
2+
control.1 {
3+
iface MIXER
4+
name 'rt712 FU06 Playback Volume'
5+
value.0 80
6+
value.1 80
7+
comment {
8+
access 'read write'
9+
type INTEGER
10+
count 2
11+
range '0 - 87'
12+
dbmin -6525
13+
dbmax 0
14+
dbvalue.0 -525
15+
dbvalue.1 -525
16+
}
17+
}
18+
control.2 {
19+
iface MIXER
20+
name 'rt712 FU05 Playback Volume'
21+
value.0 80
22+
value.1 80
23+
comment {
24+
access 'read write'
25+
type INTEGER
26+
count 2
27+
range '0 - 87'
28+
dbmin -6525
29+
dbmax 0
30+
dbvalue.0 -525
31+
dbvalue.1 -525
32+
}
33+
}
34+
control.3 {
35+
iface MIXER
36+
name 'rt712 FU0F Capture Switch'
37+
value.0 on
38+
value.1 on
39+
comment {
40+
access 'read write'
41+
type BOOLEAN
42+
count 2
43+
}
44+
}
45+
control.4 {
46+
iface MIXER
47+
name 'rt712 FU0F Capture Volume'
48+
value.0 46
49+
value.1 46
50+
comment {
51+
access 'read write'
52+
type INTEGER
53+
count 2
54+
range '0 - 63'
55+
dbmin -1725
56+
dbmax 3000
57+
dbvalue.0 1725
58+
dbvalue.1 1725
59+
}
60+
}
61+
control.14 {
62+
iface MIXER
63+
name 'Headphone Switch'
64+
value.0 on
65+
comment {
66+
access 'read write'
67+
type BOOLEAN
68+
count 1
69+
}
70+
}
71+
control.15 {
72+
iface MIXER
73+
name 'Headset Mic Switch'
74+
value.0 on
75+
comment {
76+
access 'read write'
77+
type BOOLEAN
78+
count 1
79+
}
80+
}
81+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
state.sofsoundwire {
2+
control.2 {
3+
iface MIXER
4+
name 'rt722 FU0F Capture Switch'
5+
value.0 true
6+
value.1 true
7+
comment {
8+
access 'read write'
9+
type BOOLEAN
10+
count 2
11+
}
12+
}
13+
control.3 {
14+
iface MIXER
15+
name 'rt722 FU0F Capture Volume'
16+
value.0 15
17+
value.1 15
18+
comment {
19+
access 'read write'
20+
type INTEGER
21+
count 2
22+
range '0 - 63'
23+
dbmin -1725
24+
dbmax 3000
25+
dbvalue.0 3000
26+
dbvalue.1 3000
27+
}
28+
}
29+
control.5 {
30+
iface MIXER
31+
name 'rt722 FU06 Playback Volume'
32+
value.0 50
33+
value.1 50
34+
comment {
35+
access 'read write'
36+
type INTEGER
37+
count 2
38+
range '0 - 87'
39+
dbmin -6525
40+
dbmax 0
41+
dbvalue.0 -2025
42+
dbvalue.1 -2025
43+
}
44+
}
45+
control.6 {
46+
iface MIXER
47+
name 'rt722 FU1E Capture Switch'
48+
value.0 true
49+
value.1 true
50+
value.2 true
51+
value.3 true
52+
comment {
53+
access 'read write'
54+
type BOOLEAN
55+
count 4
56+
}
57+
}
58+
control.9 {
59+
iface MIXER
60+
name 'Headphone Switch'
61+
value true
62+
comment {
63+
access 'read write'
64+
type BOOLEAN
65+
count 1
66+
}
67+
}
68+
control.10 {
69+
iface MIXER
70+
name 'Headset Mic Switch'
71+
value true
72+
comment {
73+
access 'read write'
74+
type BOOLEAN
75+
count 1
76+
}
77+
}
78+
control.13 {
79+
iface MIXER
80+
name 'Speaker Switch'
81+
value true
82+
comment {
83+
access 'read write'
84+
type BOOLEAN
85+
count 1
86+
}
87+
}
88+
}

case-lib/lib.sh

Lines changed: 85 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,9 +1034,39 @@ re_enable_ntp_sync()
10341034
print_alsa_info()
10351035
{
10361036
OUTPUT_FILE="/tmp/alsa-info.txt"
1037-
alsa-info --output "$OUTPUT_FILE" --with-aplay --with-amixer --with-alsactl --with-configs
1037+
alsa-info --output "$OUTPUT_FILE" --with-aplay --with-amixer --with-alsactl --with-configs --no-upload
10381038
ALSA_INFO_TEXT=$(cat "$OUTPUT_FILE")
1039-
dlogi "$ALSA_INFOTEXT"
1039+
dlogi "----------- ↓ alsa-info ↓ ------------"
1040+
dlogi "$ALSA_INFO_TEXT"
1041+
dlogi "----------- ↑ alsa-info ↑ ------------"
1042+
}
1043+
1044+
# Check whether a relevant .state file exists
1045+
# If not, save current state for future use
1046+
# param1: script home path
1047+
# param2: platform name
1048+
get_alsactl_state_or_create()
1049+
{
1050+
ALSACTL_STATE_FILE_PATH="$1"/alsa_settings/alsactl/"$2".state
1051+
# .state file does not exist. Creating one from current setup.
1052+
if [ ! -f "$ALSACTL_STATE_FILE_PATH" ]; then
1053+
alsactl store --file="$ALSACTL_STATE_FILE_PATH"
1054+
fi
1055+
echo "$ALSACTL_STATE_FILE_PATH"
1056+
}
1057+
1058+
# Check whether a relevant .state file exists
1059+
# and return its file path
1060+
# param1: script home path
1061+
# param2: platform name
1062+
get_alsactl_state()
1063+
{
1064+
ALSACTL_STATE_FILE_PATH="$1"/alsa_settings/alsactl/"$2".state
1065+
# .state file does not exist.
1066+
if [ ! -f "$ALSACTL_STATE_FILE_PATH" ]; then
1067+
return 1;
1068+
fi
1069+
echo "$ALSACTL_STATE_FILE_PATH"
10401070
}
10411071

10421072
# check-alsabat.sh need to run optimum alsa control settings
@@ -1058,6 +1088,59 @@ set_alsa_settings()
10581088
;;
10591089
TGLU_RVP_NOCODEC_IPC4ZPH | ADLP_RVP_NOCODEC_IPC4ZPH | ADLP_RVP_NOCODEC-ipc4 | TGLU_RVP_NOCODEC-ipc4 | MTLP_RVP_NOCODEC | MTLP_RVP_NOCODEC-multicore-2cores | MTLP_RVP_NOCODEC-multicore-3cores | LNLM_RVP_NOCODEC)
10601090
dlogi "Use reset_sof_volume function to set amixer setting."
1091+
;;
1092+
PTL*)
1093+
dlogi "Using experimental ALSACTL method"
1094+
1095+
ALSACTL_STATE_FILE_PATH=$(get_alsactl_state "$SCRIPT_HOME" "$PNAME")
1096+
1097+
# No existing state file, finish early
1098+
if [ -z "${ALSACTL_STATE_FILE_PATH}" ]; then
1099+
return 0
1100+
fi
1101+
1102+
alsactl restore --file="$ALSACTL_STATE_FILE_PATH"
1103+
1104+
# DEBUG: Show current info
1105+
dlogi "After ALSACTL"
1106+
print_alsa_info
1107+
;;
1108+
MTL*|TGL*)
1109+
dlogi "Using experimental ALSACTL method"
1110+
1111+
ALSACTL_STATE_FILE_PATH=$(get_alsactl_state_or_create "$SCRIPT_HOME" "$PNAME")
1112+
1113+
# No existing state file, finish early
1114+
if [ -z "${ALSACTL_STATE_FILE_PATH}" ]; then
1115+
return 0
1116+
fi
1117+
1118+
# DEBUG
1119+
ALSACTL_STATE_CONTENTS=$(cat "$ALSACTL_STATE_FILE_PATH")
1120+
dlogi "----------- ↓ $PNAME.state ↓ ------------"
1121+
dlogi "$ALSACTL_STATE_CONTENTS"
1122+
dlogi "----------- ↑ $PNAME.state ↑ ------------"
1123+
# DEBUG
1124+
1125+
# DEBUG: Change value to verify restore's function
1126+
if [ "$PNAME" = "PTLH_SDW_RT712" ]; then
1127+
amixer -c 0 sset "Headset Mic" off
1128+
fi
1129+
1130+
# DEBUG: Show current info
1131+
dlogi "Before ALSACTL"
1132+
print_alsa_info
1133+
1134+
alsactl restore --file="$ALSACTL_STATE_FILE_PATH"
1135+
1136+
# DEBUG: Show current info
1137+
dlogi "After ALSACTL"
1138+
print_alsa_info
1139+
1140+
# DEBUG: Change value in case restore failed
1141+
if [ "$PNAME" = "PTLH_SDW_RT712" ]; then
1142+
amixer -c 0 sset "Headset Mic" off
1143+
fi
10611144
;;
10621145
*)
10631146
# if script name is same as platform name, default case will handle all

0 commit comments

Comments
 (0)