aboutsummarylogtreecommitdiffstats
path: root/samsung-galaxybook-audio-init
blob: 3f08d98496cdcaf6735fefcce3c37d1e58502d29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/bin/bash
set -euo pipefail

device=/dev/snd/hwC0D0

if [[ $EUID -ne 0 ]]; then
  echo "samsung-galaxybook-audio-init must be run as root" >&2
  exit 1
fi

if ! command -v hda-verb >/dev/null 2>&1; then
  echo "hda-verb not found. Install alsa-tools." >&2
  exit 1
fi

if [[ ! -e "$device" ]]; then
  echo "Audio device $device not found" >&2
  exit 1
fi

verbs=(
  "0x1a SET_PIN_WIDGET_CONTROL 0x5"
  "0x20 0x500 0x2b"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x2b"
  "0x20 0x40c 0x10"
  "0x20 0x500 0x3"
  "0x20 0x400 0x42"
  "0x20 0x500 0x5"
  "0x20 0x42b 0xe0"
  "0x20 0x500 0x8"
  "0x20 0x42f 0xcf"
  "0x20 0x500 0xe"
  "0x20 0x46f 0x80"
  "0x20 0x500 0xf"
  "0x20 0x400 0x62"
  "0x20 0x500 0x10"
  "0x20 0x40e 0x21"
  "0x20 0x500 0x11"
  "0x20 0x500 0x19"
  "0x20 0x400 0x17"
  "0x20 0x500 0x2b"
  "0x20 0x40c 0x10"
  "0x20 0x500 0x2d"
  "0x20 0x4c0 0x20"
  "0x20 0x500 0x30"
  "0x20 0x424 0x21"
  "0x20 0x500 0x32"
  "0x20 0x43f 0x0"
  "0x20 0x500 0x4f"
  "0x20 0x4b0 0x29"
  "0x20 0x500 0x50"
  "0x20 0x410 0x0"
  "0x20 0x500 0x55"
  "0x20 0x480 0x0"
  "0x20 0x500 0x80"
  "0x20 0x400 0x11"
  "0x20 0x500 0x82"
  "0x20 0x444 0x8"
  "0x20 0x500 0x99"
  "0x20 0x480 0x0"
  "0x20 0x500 0x22"
  "0x20 0x400 0x3a"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x404 0x0"
  "0x20 0x400 0x0"
  "0x20 0x400 0x0"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x404 0x1"
  "0x20 0x400 0x0"
  "0x20 0x400 0x1"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x18"
  "0x20 0x400 0x0"
  "0x20 0x400 0x1"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x19"
  "0x20 0x400 0x0"
  "0x20 0x400 0x0"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x20"
  "0x20 0x400 0x0"
  "0x20 0x400 0xc0"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x22"
  "0x20 0x400 0x0"
  "0x20 0x400 0x44"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x23"
  "0x20 0x400 0x0"
  "0x20 0x400 0x8"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x24"
  "0x20 0x400 0x0"
  "0x20 0x400 0x85"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x25"
  "0x20 0x400 0x0"
  "0x20 0x400 0x0"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x23"
  "0x20 0x400 0x26"
  "0x20 0x400 0x0"
  "0x20 0x400 0x0"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x35"
  "0x20 0x400 0x0"
  "0x20 0x400 0x40"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x26"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x23"
  "0x20 0x400 0x36"
  "0x20 0x400 0x0"
  "0x20 0x400 0x1"
  "0x20 0x4b0 0x11"
  "0x20 0x500 0x10"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x10"
  "0x20 0x40f 0x21"
  "0x20 0x500 0x11"
  "0x20 0xc00 0x0"
  "0x20 0x500 0x11"
)

for verb in "${verbs[@]}"; do
  hda-verb "$device" $verb >/dev/null 2>&1
done