summaryrefslogtreecommitdiff
path: root/system/easy-kernel/0304-fix-powerbook6-5-audio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/easy-kernel/0304-fix-powerbook6-5-audio.patch')
-rw-r--r--system/easy-kernel/0304-fix-powerbook6-5-audio.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/system/easy-kernel/0304-fix-powerbook6-5-audio.patch b/system/easy-kernel/0304-fix-powerbook6-5-audio.patch
new file mode 100644
index 000000000..0db865335
--- /dev/null
+++ b/system/easy-kernel/0304-fix-powerbook6-5-audio.patch
@@ -0,0 +1,48 @@
+diff -Naur linux-5.15.98/sound/aoa/fabrics/layout.c linux-5.15.98-aoapatched/sound/aoa/fabrics/layout.c
+--- linux-5.15.98/sound/aoa/fabrics/layout.c 2021-11-01 07:53:10.000000000 +1100
++++ linux-5.15.98-aoapatched/sound/aoa/fabrics/layout.c 2023-03-26 10:26:44.164446653 +1100
+@@ -112,6 +112,8 @@
+ MODULE_ALIAS("aoa-device-id-22");
+ MODULE_ALIAS("aoa-device-id-31");
+ MODULE_ALIAS("aoa-device-id-35");
++MODULE_ALIAS("aoa-device-id-38");
++MODULE_ALIAS("aoa-device-id-40");
+ MODULE_ALIAS("aoa-device-id-44");
+
+ /* onyx with all but microphone connected */
+@@ -368,7 +370,20 @@
+ .connections = tas_connections_nolineout,
+ },
+ },
++ /* PowerBook6,4 */
++ { .device_id = 40,
++ .codecs[0] = {
++ .name = "tas",
++ .connections = tas_connections_nolineout,
++ },
++ },
+ /* PowerBook6,5 */
++ { .device_id = 38,
++ .codecs[0] = {
++ .name = "tas",
++ .connections = tas_connections_all,
++ },
++ },
+ { .device_id = 44,
+ .codecs[0] = {
+ .name = "tas",
+diff -Naur linux-5.15.98/sound/aoa/soundbus/i2sbus/core.c linux-5.15.98-aoapatched/sound/aoa/soundbus/i2sbus/core.c
+--- linux-5.15.98/sound/aoa/soundbus/i2sbus/core.c 2023-03-25 22:44:47.884607314 +1100
++++ linux-5.15.98-aoapatched/sound/aoa/soundbus/i2sbus/core.c 2023-03-25 22:57:44.774604351 +1100
+@@ -197,8 +197,9 @@
+ * We probably cannot handle all device-id machines,
+ * so restrict to those we do handle for now.
+ */
+- if (id && (*id == 22 || *id == 14 || *id == 35 ||
+- *id == 31 || *id == 44)) {
++ if (id && (*id == 14 || *id == 22 || *id == 31 ||
++ *id == 35 || *id == 38 || *id == 40 ||
++ *id == 44)) {
+ snprintf(dev->sound.modalias, 32,
+ "aoa-device-id-%d", *id);
+ ok = 1;