[PATCH v3] ALSA: hda/realtek: Enable internal speakers on Razer Blade 16 (2025)

From: Christopher Höner

Date: Mon Jun 22 2026 - 13:55:14 EST


On the Razer Blade 16 (2025) (Realtek ALC298, PCI SSID 1a58:300e) the
internal speakers are driven through an external smart amplifier whose
crossover, voicing and protection live in a DSP reached over a vendor
coef mailbox on NID 0x20. Both speaker pins are fed from one DAC
through a mixer and the amplifier does the crossover. The BIOS leaves
the tweeter pin (NID 0x14) disabled (default config 0x411111f0), so the
tweeters are not exposed and the amplifier is never programmed for this
machine under Linux.

Add a fixup for the machine that:

- re-exposes the tweeter pin (NID 0x14) as an internal speaker in the
same association (2) as the woofer (NID 0x17), so the controls come
out as "Speaker"/"Bass Speaker", with auto-mute on headphone
insertion;

- pins every output to a fixed converter via preferred_dacs so the
routing does not depend on the generic parser's DAC-allocation
heuristics: both speaker pins share DAC 0x03 (the only converter
that drives the woofer on this machine) through the mixer, while the
headphone (NID 0x21) keeps DAC 0x02. Without a fixed assignment the
parser brings up only one speaker pin and leaves the other silent;

- wakes the external amp, programs its DSP over the NID-0x20 mailbox
at init (boot and resume) and parks it; it is woken again for
playback and parked afterwards from a pcm_playback_hook, like the
existing Samsung and LG Gram amplifier fixups.

The DSP sequence was obtained by capturing the Windows driver's HD-audio
traffic via QEMU/VFIO passthrough of the controller and reducing it to
the NID-0x20 writes this machine needs; everything else the parser
rebuilds. The captured tables are large, so they live in a separate
header that the codec driver includes.

Signed-off-by: Christopher Höner <christopher-hoener@xxxxxx>
---
Changes in v3:
- Move the captured amp programming (the init/wake/park tables) into
a new header, sound/hda/codecs/realtek/alc298_rb16_2025.h, and
include it from the codec instead of carrying the tables inline.
- Add the two leading mailbox writes (f102, f103) that precede the
DSP body in every captured boot. Both are always zero, which the
body relies on, so they are restored at the top of the init table.
- Keep the pcm_playback_hook for amp power instead of setting
power_save_node: the external amp is driven over the NID-0x20 coef
mailbox rather than as a power-managed widget, so power_save_node
cannot reach it (details in the v2 thread).

Changes in v2:
- Bring up both speaker pins via preferred_dacs instead of explicit
SET_CONNECT_SEL/SET_POWER_STATE/SET_PIN_WIDGET_CONTROL/amp verbs at
init. All three output pins are pinned to fixed converters
(headphone NID 0x21 -> DAC 0x02, both speaker pins -> DAC 0x03), so
the generic parser routes, powers and unmutes them and the routing
no longer depends on its DAC-allocation heuristics. This also drops
the hardcoded NID 0x17 connection-select value questioned in v1.
- Drop the codec-coef preamble that the captured trace replayed before
the DSP body: the standard codec init already establishes that state
on this machine, so the preamble is redundant. Init now wakes the
amp, programs the DSP body and parks it.
- Reduce the per-playback wake and park to the three coef writes that
select the amp's run/idle state (ea00, c121, f109); the rest of the
captured wake/park was constant context the Windows driver re-sends
on every transition.
- Explain in a comment why the NID-0x20 mailbox stream uses
snd_hda_codec_write() rather than alc_process_coef_fw(); drop a
duplicated comment and correct the init comment.
- Limit the quirk to PCI SSID 1a58:300e.
- Tested from cold boot, warm reboot, S3 resume and a full power cycle
on Linux 7.1.1.

sound/hda/codecs/realtek/alc269.c | 118 ++++
sound/hda/codecs/realtek/alc298_rb16_2025.h | 725 ++++++++++++++++++++
2 files changed, 843 insertions(+)
create mode 100644 sound/hda/codecs/realtek/alc298_rb16_2025.h

diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index dcbc669..ba758d7 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -6,6 +6,7 @@
#include <linux/init.h>
#include <linux/module.h>
#include "realtek.h"
+#include "alc298_rb16_2025.h"

/* keep halting ALC5505 DSP, for power saving */
#define HALT_REALTEK_ALC5505
@@ -4029,6 +4030,8 @@ enum {
ALC298_FIXUP_SAMSUNG_AMP_V2_2_AMPS,
ALC298_FIXUP_SAMSUNG_AMP_V2_4_AMPS,
ALC298_FIXUP_LG_GRAM_STYLE_14,
+ ALC298_FIXUP_RB16_2025_PINS,
+ ALC298_FIXUP_RB16_2025,
ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET,
ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET,
ALC295_FIXUP_ASUS_MIC_NO_PRESENCE,
@@ -4191,7 +4194,121 @@ static void alc287_fixup_lenovo_yoga_book_9i(struct hda_codec *codec,
__snd_hda_apply_fixup(codec, id, action, 0);
}

+/*
+ * Razer Blade 16 (2025): Realtek ALC298 driving an external smart amp.
+ * Crossover, voicing and speaker protection live in an external DSP
+ * reached over a vendor-coef mailbox on NID 0x20; the captured DSP
+ * programming is in alc298_rb16_2025.h. NID 0x14, the BIOS-disabled
+ * tweeter pin, is re-exposed via a pin-config override so the parser
+ * drives it as a normal internal speaker (shared volume/mute, auto-mute
+ * on headphone insertion).
+ *
+ * alc298_rb16_2025_apply() runs one op-table: a plain coef write
+ * (strobe == 0) goes through alc_write_coef_idx(), while a mailbox op
+ * selects a bank and streams four PROC_COEF words (addr/hi/lo/commit)
+ * into a single coef index (0x23) on NID 0x20 to reach the external DSP
+ * -- that one-index/many-words form is why it cannot be expressed as an
+ * alc_process_coef_fw() table (one value per index).
+ */
+static void alc298_rb16_2025_apply(struct hda_codec *codec,
+ const struct alc298_rb16_2025_op *seq,
+ int num)
+{
+ int i;
+
+ for (i = 0; i < num; i++) {
+ if (!seq[i].strobe) {
+ alc_write_coef_idx(codec, seq[i].addr, seq[i].lo);
+ continue;
+ }
+ alc_write_coef_idx(codec, 0x89, seq[i].bank);
+ snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_COEF_INDEX, 0x23);
+ snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].addr);
+ snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].hi);
+ snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].lo);
+ snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].strobe);
+ }
+}
+
+static void alc298_rb16_2025_pcm_hook(struct hda_pcm_stream *hinfo,
+ struct hda_codec *codec,
+ struct snd_pcm_substream *substream,
+ int action)
+{
+ /* power the external amp only while a stream is running */
+ switch (action) {
+ case HDA_GEN_PCM_ACT_PREPARE:
+ alc298_rb16_2025_apply(codec, alc298_rb16_2025_amp_wake,
+ ARRAY_SIZE(alc298_rb16_2025_amp_wake));
+ break;
+ case HDA_GEN_PCM_ACT_CLEANUP:
+ alc298_rb16_2025_apply(codec, alc298_rb16_2025_amp_sleep,
+ ARRAY_SIZE(alc298_rb16_2025_amp_sleep));
+ break;
+ }
+}
+
+static void alc298_fixup_rb16_2025(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ /*
+ * Pin every output to a fixed converter so the routing does not
+ * rely on the generic parser's DAC-allocation heuristics: without
+ * a fixed assignment the parser brings up only one speaker pin and
+ * leaves the other silent, and the allocation could change between
+ * kernel versions. Both speaker pins share DAC 0x03 through mixer
+ * 0x0d: that is the only converter that drives the woofer (NID
+ * 0x17) on this machine -- feeding it from DAC 0x02 or the digital
+ * converter 0x06 leaves the woofer silent. Both pins carry the
+ * same stereo stream and the external amp does the crossover.
+ * Headphone NID 0x21 keeps DAC 0x02.
+ */
+ static const hda_nid_t preferred_pairs[] = {
+ 0x21, 0x02,
+ 0x14, 0x03,
+ 0x17, 0x03,
+ 0
+ };
+ struct alc_spec *spec = codec->spec;
+
+ switch (action) {
+ case HDA_FIXUP_ACT_PRE_PROBE:
+ spec->gen.preferred_dacs = preferred_pairs;
+ break;
+ case HDA_FIXUP_ACT_PROBE:
+ spec->gen.pcm_playback_hook = alc298_rb16_2025_pcm_hook;
+ break;
+ case HDA_FIXUP_ACT_INIT:
+ /*
+ * Wake the amp, program its DSP at boot and on resume, then
+ * park it. It is woken again for playback and parked
+ * afterwards from the pcm_playback_hook.
+ */
+ alc298_rb16_2025_apply(codec, alc298_rb16_2025_amp_wake,
+ ARRAY_SIZE(alc298_rb16_2025_amp_wake));
+ alc298_rb16_2025_apply(codec, alc298_rb16_2025_amp_init,
+ ARRAY_SIZE(alc298_rb16_2025_amp_init));
+ alc298_rb16_2025_apply(codec, alc298_rb16_2025_amp_sleep,
+ ARRAY_SIZE(alc298_rb16_2025_amp_sleep));
+ break;
+ }
+}
+
static const struct hda_fixup alc269_fixups[] = {
+ [ALC298_FIXUP_RB16_2025_PINS] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x14, 0x90170121 }, /* tweeter as internal speaker, seq 1 */
+ { 0x17, 0x90170120 }, /* woofer as internal speaker, seq 0 */
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC298_FIXUP_RB16_2025,
+ },
+ [ALC298_FIXUP_RB16_2025] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc298_fixup_rb16_2025,
+ },
[ALC269_FIXUP_GPIO2] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc_fixup_gpio2,
@@ -7817,6 +7934,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
SND_PCI_QUIRK(0x19e5, 0x320f, "Huawei WRT-WX9 ", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x19e5, 0x3212, "Huawei KLV-WX9 ", ALC256_FIXUP_ACER_HEADSET_MIC),
+ SND_PCI_QUIRK(0x1a58, 0x300e, "Razer Blade 16 (2025)", ALC298_FIXUP_RB16_2025_PINS),
SND_PCI_QUIRK(0x1b35, 0x1235, "CZC B20", ALC269_FIXUP_CZC_B20),
SND_PCI_QUIRK(0x1b35, 0x1236, "CZC TMI", ALC269_FIXUP_CZC_TMI),
SND_PCI_QUIRK(0x1b35, 0x1237, "CZC L101", ALC269_FIXUP_CZC_L101),
diff --git a/sound/hda/codecs/realtek/alc298_rb16_2025.h b/sound/hda/codecs/realtek/alc298_rb16_2025.h
new file mode 100644
index 0000000..f0fd539
--- /dev/null
+++ b/sound/hda/codecs/realtek/alc298_rb16_2025.h
@@ -0,0 +1,725 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Razer Blade 16 (2025) external smart-amplifier DSP programming.
+ *
+ * The internal speakers are driven by an external smart amplifier whose
+ * crossover, voicing and protection live in a DSP reached over a vendor
+ * coef mailbox on NID 0x20. These tables hold the programming captured
+ * from the Windows driver, reduced to the NID-0x20 traffic this machine
+ * needs (everything else the HDA parser rebuilds).
+ *
+ * Each entry is either a plain codec coef write or a mailbox write:
+ * strobe == 0: coef[addr] = lo
+ * strobe != 0: amp[addr] = (hi << 16) | lo, with the bank selected on
+ * port 0x89 and the write committed by the strobe opcode.
+ */
+#ifndef __ALC298_RB16_2025_H
+#define __ALC298_RB16_2025_H
+
+#include <linux/types.h>
+
+struct alc298_rb16_2025_op {
+ u16 bank; /* mailbox bank (port 0x89); unused for a plain coef */
+ u16 addr; /* mailbox register, or plain coef index */
+ u16 hi; /* mailbox high word; unused for a plain coef */
+ u16 lo; /* mailbox low word, or plain coef value */
+ u16 strobe; /* mailbox commit opcode; 0 marks a plain coef write */
+};
+
+/* program the external DSP at init; the amp is woken/parked separately */
+static const struct alc298_rb16_2025_op alc298_rb16_2025_amp_init[] = {
+ { 0x0000, 0xf102, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xf103, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xc000, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xea00, 0x0000, 0x0047, 0xb031 },
+ { 0x0000, 0xf20d, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xf212, 0x0000, 0x003e, 0xb031 },
+ { 0x0000, 0xc001, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xc003, 0x0000, 0x0022, 0xb031 },
+ { 0x0000, 0xc004, 0x0000, 0x0044, 0xb031 },
+ { 0x0000, 0xc005, 0x0000, 0x0044, 0xb031 },
+ { 0x0000, 0xc007, 0x0000, 0x0064, 0xb031 },
+ { 0x0000, 0xc00e, 0x0000, 0x00e7, 0xb031 },
+ { 0x0000, 0xf223, 0x0000, 0x007f, 0xb031 },
+ { 0x0000, 0xf224, 0x0000, 0x00db, 0xb031 },
+ { 0x0000, 0xf225, 0x0000, 0x00ee, 0xb031 },
+ { 0x0000, 0xf226, 0x0000, 0x003f, 0xb031 },
+ { 0x0000, 0xf227, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xf21a, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xf242, 0x0000, 0x003c, 0xb031 },
+ { 0x0000, 0xc120, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xc125, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xc321, 0x0000, 0x000b, 0xb031 },
+ { 0x0000, 0xc200, 0x0000, 0x00d8, 0xb031 },
+ { 0x0000, 0xc201, 0x0000, 0x0027, 0xb031 },
+ { 0x0000, 0xc202, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xc400, 0x0000, 0x000e, 0xb031 },
+ { 0x0000, 0xc401, 0x0000, 0x0043, 0xb031 },
+ { 0x0000, 0xc402, 0x0000, 0x00e0, 0xb031 },
+ { 0x0000, 0xc403, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xc404, 0x0000, 0x004c, 0xb031 },
+ { 0x0000, 0xc406, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xc407, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xc408, 0x0000, 0x003f, 0xb031 },
+ { 0x0000, 0xc300, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xc125, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xdf00, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xdf5f, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xdf60, 0x0000, 0x00a7, 0xb031 },
+ { 0x0000, 0xc203, 0x0000, 0x0084, 0xb031 },
+ { 0x0000, 0xc206, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xf10a, 0x0000, 0x000b, 0xb031 },
+ { 0x0000, 0xf10b, 0x0000, 0x004c, 0xb031 },
+ { 0x0000, 0xf104, 0x0000, 0x00f4, 0xb031 },
+ { 0x0000, 0xf105, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xf109, 0x0000, 0x00e0, 0xb031 },
+ { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 },
+ { 0x0000, 0xf104, 0x0000, 0x00f4, 0xb031 },
+ { 0x0000, 0xf105, 0x0000, 0x0004, 0xb031 },
+ { 0x0000, 0xf109, 0x0000, 0x0065, 0xb031 },
+ { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 },
+ { 0x0000, 0xf104, 0x0000, 0x00f7, 0xb031 },
+ { 0x0000, 0xf105, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xf109, 0x0000, 0x0006, 0xb031 },
+ { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 },
+ { 0x0000, 0xf104, 0x0000, 0x00f7, 0xb031 },
+ { 0x0000, 0xf105, 0x0000, 0x0031, 0xb031 },
+ { 0x0000, 0xf109, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 },
+ { 0x0000, 0xe706, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xe707, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xe806, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xe807, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xce04, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xce05, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xce06, 0x0000, 0x0031, 0xb031 },
+ { 0x0000, 0xce07, 0x0000, 0x00b4, 0xb031 },
+ { 0x0000, 0xcf04, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xcf05, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xcf06, 0x0000, 0x0031, 0xb031 },
+ { 0x0000, 0xcf07, 0x0000, 0x00b4, 0xb031 },
+ { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xc130, 0x0000, 0x0051, 0xb031 },
+ { 0x0000, 0xe000, 0x0000, 0x00a8, 0xb031 },
+ { 0x4100, 0x1888, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xc121, 0x0000, 0x000b, 0xb031 },
+ { 0x0000, 0xea00, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xf800, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xca00, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xca10, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xca02, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xca12, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xed00, 0x0000, 0x0090, 0xb031 },
+ { 0x0000, 0xcc2c, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc2d, 0x0000, 0x000e, 0xb031 },
+ { 0x0000, 0xcc2e, 0x0000, 0x0076, 0xb031 },
+ { 0x0000, 0xcc2f, 0x0000, 0x0043, 0xb031 },
+ { 0x0000, 0xcd2c, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd2d, 0x0000, 0x000e, 0xb031 },
+ { 0x0000, 0xcd2e, 0x0000, 0x0076, 0xb031 },
+ { 0x0000, 0xcd2f, 0x0000, 0x0043, 0xb031 },
+ { 0x0000, 0xcc24, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc25, 0x0000, 0x0051, 0xb031 },
+ { 0x0000, 0xcc26, 0x0000, 0x00eb, 0xb031 },
+ { 0x0000, 0xcc27, 0x0000, 0x0085, 0xb031 },
+ { 0x0000, 0xcd24, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd25, 0x0000, 0x0051, 0xb031 },
+ { 0x0000, 0xcd26, 0x0000, 0x00eb, 0xb031 },
+ { 0x0000, 0xcd27, 0x0000, 0x0085, 0xb031 },
+ { 0x0000, 0xcc20, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc21, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc22, 0x0000, 0x0043, 0xb031 },
+ { 0x0000, 0xcd20, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd21, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd22, 0x0000, 0x0043, 0xb031 },
+ { 0x0000, 0xcc16, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xcc17, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd16, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xcd17, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc29, 0x0000, 0x005d, 0xb031 },
+ { 0x0000, 0xcc2a, 0x0000, 0x00c0, 0xb031 },
+ { 0x0000, 0xcd29, 0x0000, 0x005d, 0xb031 },
+ { 0x0000, 0xcd2a, 0x0000, 0x00c0, 0xb031 },
+ { 0x0000, 0xcc31, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xcc32, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc33, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc34, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd31, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xcd32, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd33, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd34, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc36, 0x0000, 0x0079, 0xb031 },
+ { 0x0000, 0xcc37, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xcc38, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xcc39, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xcd36, 0x0000, 0x0079, 0xb031 },
+ { 0x0000, 0xcd37, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xcd38, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xcd39, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xcc09, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc0a, 0x0000, 0x000a, 0xb031 },
+ { 0x0000, 0xcc0b, 0x0000, 0x007c, 0xb031 },
+ { 0x0000, 0xcc0c, 0x0000, 0x005b, 0xb031 },
+ { 0x0000, 0xcd09, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd0a, 0x0000, 0x000a, 0xb031 },
+ { 0x0000, 0xcd0b, 0x0000, 0x007c, 0xb031 },
+ { 0x0000, 0xcd0c, 0x0000, 0x005b, 0xb031 },
+ { 0x0000, 0xcc0e, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcc0f, 0x0000, 0x0005, 0xb031 },
+ { 0x0000, 0xcc10, 0x0000, 0x003e, 0xb031 },
+ { 0x0000, 0xcc11, 0x0000, 0x002d, 0xb031 },
+ { 0x0000, 0xcd0e, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcd0f, 0x0000, 0x0005, 0xb031 },
+ { 0x0000, 0xcd10, 0x0000, 0x003e, 0xb031 },
+ { 0x0000, 0xcd11, 0x0000, 0x002d, 0xb031 },
+ { 0x0000, 0xccd6, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xccd7, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xcdd6, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcdd7, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xccd8, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xccd9, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xcdd8, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcdd9, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xccda, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xccdb, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xcdda, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xcddb, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xc320, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xc321, 0x0000, 0x000a, 0xb031 },
+ { 0x0000, 0xe604, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xdb00, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xdd00, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xdc19, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xdc1a, 0x0000, 0x006a, 0xb031 },
+ { 0x0000, 0xdc1b, 0x0000, 0x00aa, 0xb031 },
+ { 0x0000, 0xdc1c, 0x0000, 0x00ab, 0xb031 },
+ { 0x0000, 0xdc1d, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xdc1e, 0x0000, 0x0027, 0xb031 },
+ { 0x0000, 0xdc1f, 0x0000, 0x0062, 0xb031 },
+ { 0x0000, 0xdc20, 0x0000, 0x0076, 0xb031 },
+ { 0x0000, 0xde19, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xde1a, 0x0000, 0x006a, 0xb031 },
+ { 0x0000, 0xde1b, 0x0000, 0x00aa, 0xb031 },
+ { 0x0000, 0xde1c, 0x0000, 0x00ab, 0xb031 },
+ { 0x0000, 0xde1d, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xde1e, 0x0000, 0x0027, 0xb031 },
+ { 0x0000, 0xde1f, 0x0000, 0x0062, 0xb031 },
+ { 0x0000, 0xde20, 0x0000, 0x0076, 0xb031 },
+ { 0x0000, 0xdb32, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xdd32, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xdb33, 0x0000, 0x000a, 0xb031 },
+ { 0x0000, 0xdd33, 0x0000, 0x000a, 0xb031 },
+ { 0x0000, 0xdb34, 0x0000, 0x001a, 0xb031 },
+ { 0x0000, 0xdd34, 0x0000, 0x001a, 0xb031 },
+ { 0x0000, 0xdb15, 0x0000, 0x00ef, 0xb031 },
+ { 0x0000, 0xdd15, 0x0000, 0x00ef, 0xb031 },
+ { 0x0000, 0xdb17, 0x0000, 0x003f, 0xb031 },
+ { 0x0000, 0xdd17, 0x0000, 0x003f, 0xb031 },
+ { 0x0000, 0xdb94, 0x0000, 0x0070, 0xb031 },
+ { 0x0000, 0xdd94, 0x0000, 0x0070, 0xb031 },
+ { 0x0000, 0xdb19, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xdd19, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xc203, 0x0000, 0x001c, 0xb031 },
+ { 0x0000, 0xdb00, 0x0000, 0x004c, 0xb031 },
+ { 0x0000, 0xdb04, 0x0000, 0x0005, 0xb031 },
+ { 0x0000, 0xdb05, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xdd04, 0x0000, 0x0005, 0xb031 },
+ { 0x0000, 0xdd05, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xdbbb, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xdbbc, 0x0000, 0x004c, 0xb031 },
+ { 0x0000, 0xdbbd, 0x0000, 0x00f3, 0xb031 },
+ { 0x0000, 0xdbbe, 0x0000, 0x00cf, 0xb031 },
+ { 0x0000, 0xddbb, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xddbc, 0x0000, 0x004c, 0xb031 },
+ { 0x0000, 0xddbd, 0x0000, 0x00f3, 0xb031 },
+ { 0x0000, 0xddbe, 0x0000, 0x00cf, 0xb031 },
+ { 0x0000, 0xdb01, 0x0000, 0x0079, 0xb031 },
+ { 0x0000, 0xdd01, 0x0000, 0x0079, 0xb031 },
+ { 0x0000, 0xdb08, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xdd08, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xdc52, 0x0000, 0x00ef, 0xb031 },
+ { 0x0000, 0xde52, 0x0000, 0x00ef, 0xb031 },
+ { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 },
+ { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 },
+ { 0x0000, 0xdf0a, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xdf0b, 0x0000, 0x007f, 0xb031 },
+ { 0x0000, 0xc851, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xc951, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xdf01, 0x0000, 0x0073, 0xb031 },
+ { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 },
+ { 0x0000, 0xf800, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xebcb, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xeb10, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xeb11, 0x0000, 0x00bb, 0xb031 },
+ { 0x0000, 0xeb12, 0x0000, 0x00ab, 0xb031 },
+ { 0x0000, 0xeb13, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xeb14, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb15, 0x0000, 0x004c, 0xb031 },
+ { 0x0000, 0xeb16, 0x0000, 0x0069, 0xb031 },
+ { 0x0000, 0xeb21, 0x0000, 0x0011, 0xb031 },
+ { 0x0000, 0xeb22, 0x0000, 0x00c2, 0xb031 },
+ { 0x0000, 0xeb23, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xeb24, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xeb25, 0x0000, 0x00bd, 0xb031 },
+ { 0x0000, 0xeb26, 0x0000, 0x0055, 0xb031 },
+ { 0x0000, 0xeb27, 0x0000, 0x00d0, 0xb031 },
+ { 0x0000, 0xeb28, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb29, 0x0000, 0x003c, 0xb031 },
+ { 0x0000, 0xeb2a, 0x0000, 0x0051, 0xb031 },
+ { 0x0000, 0xeb2b, 0x0000, 0x0018, 0xb031 },
+ { 0x0000, 0xeb30, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xeb31, 0x0000, 0x004f, 0xb031 },
+ { 0x0000, 0xeb32, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xeb33, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xeb34, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb35, 0x0000, 0x00bb, 0xb031 },
+ { 0x0000, 0xeb36, 0x0000, 0x0024, 0xb031 },
+ { 0x0000, 0xeb37, 0x0000, 0x0068, 0xb031 },
+ { 0x0000, 0xeb40, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb41, 0x0000, 0x00f5, 0xb031 },
+ { 0x0000, 0xeb42, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xeb43, 0x0000, 0x00e8, 0xb031 },
+ { 0x0000, 0xeb44, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xeb45, 0x0000, 0x004f, 0xb031 },
+ { 0x0000, 0xeb46, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xeb47, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xeb48, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb49, 0x0000, 0x00c5, 0xb031 },
+ { 0x0000, 0xeb4a, 0x0000, 0x0032, 0xb031 },
+ { 0x0000, 0xeb4b, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xeb50, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xeb51, 0x0000, 0x008a, 0xb031 },
+ { 0x0000, 0xeb52, 0x0000, 0x00b4, 0xb031 },
+ { 0x0000, 0xeb53, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xeb54, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb55, 0x0000, 0x007d, 0xb031 },
+ { 0x0000, 0xeb56, 0x0000, 0x00d9, 0xb031 },
+ { 0x0000, 0xeb57, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xeb60, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xeb61, 0x0000, 0x00e7, 0xb031 },
+ { 0x0000, 0xeb62, 0x0000, 0x00b5, 0xb031 },
+ { 0x0000, 0xeb63, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xeb64, 0x0000, 0x00fa, 0xb031 },
+ { 0x0000, 0xeb65, 0x0000, 0x0086, 0xb031 },
+ { 0x0000, 0xeb66, 0x0000, 0x00a8, 0xb031 },
+ { 0x0000, 0xeb67, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xeb68, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xeb69, 0x0000, 0x009a, 0xb031 },
+ { 0x0000, 0xeb6a, 0x0000, 0x002f, 0xb031 },
+ { 0x0000, 0xeb6b, 0x0000, 0x0018, 0xb031 },
+ { 0x0000, 0xebb6, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xeb70, 0x0000, 0x00f5, 0xb031 },
+ { 0x0000, 0xeb71, 0x0000, 0x00e1, 0xb031 },
+ { 0x0000, 0xeb72, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xeb73, 0x0000, 0x00d0, 0xb031 },
+ { 0x0000, 0xeb74, 0x0000, 0x0006, 0xb031 },
+ { 0x0000, 0xeb75, 0x0000, 0x0050, 0xb031 },
+ { 0x0000, 0xeb76, 0x0000, 0x002c, 0xb031 },
+ { 0x0000, 0xeb77, 0x0000, 0x0050, 0xb031 },
+ { 0x0000, 0xeb80, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb81, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xeb82, 0x0000, 0x0016, 0xb031 },
+ { 0x0000, 0xeb83, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xeb84, 0x0000, 0x00f5, 0xb031 },
+ { 0x0000, 0xeb85, 0x0000, 0x00e1, 0xb031 },
+ { 0x0000, 0xeb86, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xeb87, 0x0000, 0x00d0, 0xb031 },
+ { 0x0000, 0xeb88, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xeb89, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xeb8a, 0x0000, 0x0016, 0xb031 },
+ { 0x0000, 0xeb8b, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xebb8, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xeb90, 0x0000, 0x00fc, 0xb031 },
+ { 0x0000, 0xeb91, 0x0000, 0x008b, 0xb031 },
+ { 0x0000, 0xeb92, 0x0000, 0x00bd, 0xb031 },
+ { 0x0000, 0xeb93, 0x0000, 0x0064, 0xb031 },
+ { 0x0000, 0xeb94, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xeb95, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xeb96, 0x0000, 0x00e7, 0xb031 },
+ { 0x0000, 0xeb97, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xeba0, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xeba1, 0x0000, 0x0091, 0xb031 },
+ { 0x0000, 0xeba2, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xeba3, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xeba4, 0x0000, 0x00f6, 0xb031 },
+ { 0x0000, 0xeba5, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xeba6, 0x0000, 0x0093, 0xb031 },
+ { 0x0000, 0xeba7, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xeba8, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xeba9, 0x0000, 0x0087, 0xb031 },
+ { 0x0000, 0xebaa, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xebab, 0x0000, 0x006c, 0xb031 },
+ { 0x0000, 0xebc3, 0x0000, 0x00ff, 0xb031 },
+ { 0x0000, 0xebc4, 0x0000, 0x00fc, 0xb031 },
+ { 0x0000, 0xeb00, 0x0000, 0x0005, 0xb031 },
+ { 0x0000, 0xeb01, 0x0000, 0x00a9, 0xb031 },
+ { 0x0000, 0xeb02, 0x0000, 0x00df, 0xb031 },
+ { 0x0000, 0xeb03, 0x0000, 0x007b, 0xb031 },
+ { 0x0000, 0xeb05, 0x0000, 0x0079, 0xb031 },
+ { 0x0000, 0xeb06, 0x0000, 0x005a, 0xb031 },
+ { 0x0000, 0xeb07, 0x0000, 0x0004, 0xb031 },
+ { 0x0000, 0xebc0, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xd0cb, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xd0b0, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xd010, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd011, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xd012, 0x0000, 0x0092, 0xb031 },
+ { 0x0000, 0xd013, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd014, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xd015, 0x0000, 0x00f6, 0xb031 },
+ { 0x0000, 0xd016, 0x0000, 0x0072, 0xb031 },
+ { 0x0000, 0xd017, 0x0000, 0x00b0, 0xb031 },
+ { 0x0000, 0xd020, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xd021, 0x0000, 0x00fb, 0xb031 },
+ { 0x0000, 0xd022, 0x0000, 0x0037, 0xb031 },
+ { 0x0000, 0xd023, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd024, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd025, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xd026, 0x0000, 0x0090, 0xb031 },
+ { 0x0000, 0xd027, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xd028, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xd029, 0x0000, 0x00fb, 0xb031 },
+ { 0x0000, 0xd02a, 0x0000, 0x0037, 0xb031 },
+ { 0x0000, 0xd02b, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd0c3, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd0c4, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xd0c0, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xce6a, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xce63, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xce64, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 },
+ { 0x0000, 0xdb04, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xdb05, 0x0000, 0x0006, 0xb031 },
+ { 0x0000, 0xcc00, 0x0000, 0x00c1, 0xb031 },
+ { 0x0000, 0xca02, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xca00, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xca62, 0x0000, 0x0077, 0xb031 },
+ { 0x0000, 0xca65, 0x0000, 0x0082, 0xb031 },
+ { 0x0000, 0xca68, 0x0000, 0x00c2, 0xb031 },
+ { 0x0000, 0xca75, 0x0000, 0x003a, 0xb031 },
+ { 0x0000, 0xca7b, 0x0000, 0x006f, 0xb031 },
+ { 0x0000, 0xca00, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xca02, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xc860, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xc861, 0x0000, 0x00e5, 0xb031 },
+ { 0x0000, 0xc862, 0x0000, 0x00eb, 0xb031 },
+ { 0x0000, 0xc863, 0x0000, 0x00c6, 0xb031 },
+ { 0x0000, 0xc864, 0x0000, 0x00ba, 0xb031 },
+ { 0x0000, 0xc865, 0x0000, 0x0061, 0xb031 },
+ { 0x0000, 0xc867, 0x0000, 0x0017, 0xb031 },
+ { 0x0000, 0xc868, 0x0000, 0x00ed, 0xb031 },
+ { 0x0000, 0xc869, 0x0000, 0x003c, 0xb031 },
+ { 0x0000, 0xc86a, 0x0000, 0x008a, 0xb031 },
+ { 0x0000, 0xc86b, 0x0000, 0x00e2, 0xb031 },
+ { 0x0000, 0xc875, 0x0000, 0x003a, 0xb031 },
+ { 0x0000, 0xc87b, 0x0000, 0x006f, 0xb031 },
+ { 0x0000, 0xc836, 0x0000, 0x00f9, 0xb031 },
+ { 0x0000, 0xc8a0, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xc833, 0x0000, 0x000b, 0xb031 },
+ { 0x0000, 0xc834, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xc83f, 0x0000, 0x0014, 0xb031 },
+ { 0x0000, 0xc83e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc83a, 0x0000, 0x0076, 0xb031 },
+ { 0x0000, 0xc83b, 0x0000, 0x0089, 0xb031 },
+ { 0x0000, 0xc830, 0x0000, 0x0013, 0xb031 },
+ { 0x0000, 0xc826, 0x0000, 0x00d1, 0xb031 },
+ { 0x0000, 0xc890, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xc823, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xc824, 0x0000, 0x0004, 0xb031 },
+ { 0x0000, 0xc82f, 0x0000, 0x0018, 0xb031 },
+ { 0x0000, 0xc82e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc820, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xc816, 0x0000, 0x00f9, 0xb031 },
+ { 0x0000, 0xc880, 0x0000, 0x00e1, 0xb031 },
+ { 0x0000, 0xc813, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xc814, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xc81f, 0x0000, 0x0014, 0xb031 },
+ { 0x0000, 0xc81e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc81a, 0x0000, 0x0066, 0xb031 },
+ { 0x0000, 0xc81b, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xc810, 0x0000, 0x000d, 0xb031 },
+ { 0x0000, 0xc846, 0x0000, 0x00f9, 0xb031 },
+ { 0x0000, 0xc8d0, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xc844, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xc84f, 0x0000, 0x0014, 0xb031 },
+ { 0x0000, 0xc84e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc84a, 0x0000, 0x0026, 0xb031 },
+ { 0x0000, 0xc84b, 0x0000, 0x0056, 0xb031 },
+ { 0x0000, 0xc800, 0x0000, 0x00b0, 0xb031 },
+ { 0x0000, 0xc851, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xc500, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc501, 0x0000, 0x0026, 0xb031 },
+ { 0x0000, 0xc502, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xc503, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xc504, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xc505, 0x0000, 0x00da, 0xb031 },
+ { 0x0000, 0xc506, 0x0000, 0x000e, 0xb031 },
+ { 0x0000, 0xc507, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc510, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xc511, 0x0000, 0x00da, 0xb031 },
+ { 0x0000, 0xc512, 0x0000, 0x000e, 0xb031 },
+ { 0x0000, 0xc513, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc514, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc515, 0x0000, 0x0026, 0xb031 },
+ { 0x0000, 0xc516, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xc517, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xc518, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xc541, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xd250, 0x0000, 0x0087, 0xb031 },
+ { 0x0000, 0xd251, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xd264, 0x0000, 0x00c0, 0xb031 },
+ { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 },
+ { 0x0000, 0xf800, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xecb0, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xec10, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xec11, 0x0000, 0x00bb, 0xb031 },
+ { 0x0000, 0xec12, 0x0000, 0x00ab, 0xb031 },
+ { 0x0000, 0xec13, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xec14, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec15, 0x0000, 0x004c, 0xb031 },
+ { 0x0000, 0xec16, 0x0000, 0x0069, 0xb031 },
+ { 0x0000, 0xec21, 0x0000, 0x0011, 0xb031 },
+ { 0x0000, 0xec22, 0x0000, 0x00c2, 0xb031 },
+ { 0x0000, 0xec23, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xec24, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xec25, 0x0000, 0x00bd, 0xb031 },
+ { 0x0000, 0xec26, 0x0000, 0x0055, 0xb031 },
+ { 0x0000, 0xec27, 0x0000, 0x00d0, 0xb031 },
+ { 0x0000, 0xec28, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec29, 0x0000, 0x003c, 0xb031 },
+ { 0x0000, 0xec2a, 0x0000, 0x0051, 0xb031 },
+ { 0x0000, 0xec2b, 0x0000, 0x0018, 0xb031 },
+ { 0x0000, 0xecb2, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xec30, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xec31, 0x0000, 0x004f, 0xb031 },
+ { 0x0000, 0xec32, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xec33, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xec34, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec35, 0x0000, 0x00bb, 0xb031 },
+ { 0x0000, 0xec36, 0x0000, 0x0024, 0xb031 },
+ { 0x0000, 0xec37, 0x0000, 0x0068, 0xb031 },
+ { 0x0000, 0xec40, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec41, 0x0000, 0x00f5, 0xb031 },
+ { 0x0000, 0xec42, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xec43, 0x0000, 0x00e8, 0xb031 },
+ { 0x0000, 0xec44, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xec45, 0x0000, 0x004f, 0xb031 },
+ { 0x0000, 0xec46, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xec47, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xec48, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec49, 0x0000, 0x00c5, 0xb031 },
+ { 0x0000, 0xec4a, 0x0000, 0x0032, 0xb031 },
+ { 0x0000, 0xec4b, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xecb4, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xec50, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xec51, 0x0000, 0x008a, 0xb031 },
+ { 0x0000, 0xec52, 0x0000, 0x00b4, 0xb031 },
+ { 0x0000, 0xec53, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xec54, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec55, 0x0000, 0x007d, 0xb031 },
+ { 0x0000, 0xec56, 0x0000, 0x00d9, 0xb031 },
+ { 0x0000, 0xec57, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xec60, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xec61, 0x0000, 0x00e7, 0xb031 },
+ { 0x0000, 0xec62, 0x0000, 0x00b5, 0xb031 },
+ { 0x0000, 0xec63, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xec64, 0x0000, 0x00fa, 0xb031 },
+ { 0x0000, 0xec65, 0x0000, 0x0086, 0xb031 },
+ { 0x0000, 0xec66, 0x0000, 0x00a8, 0xb031 },
+ { 0x0000, 0xec67, 0x0000, 0x0040, 0xb031 },
+ { 0x0000, 0xec68, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xec69, 0x0000, 0x009a, 0xb031 },
+ { 0x0000, 0xec6a, 0x0000, 0x002f, 0xb031 },
+ { 0x0000, 0xec6b, 0x0000, 0x0018, 0xb031 },
+ { 0x0000, 0xecb6, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xec70, 0x0000, 0x00f5, 0xb031 },
+ { 0x0000, 0xec71, 0x0000, 0x00e1, 0xb031 },
+ { 0x0000, 0xec72, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xec73, 0x0000, 0x00d0, 0xb031 },
+ { 0x0000, 0xec74, 0x0000, 0x0006, 0xb031 },
+ { 0x0000, 0xec75, 0x0000, 0x0050, 0xb031 },
+ { 0x0000, 0xec76, 0x0000, 0x002c, 0xb031 },
+ { 0x0000, 0xec77, 0x0000, 0x0050, 0xb031 },
+ { 0x0000, 0xec80, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec81, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xec82, 0x0000, 0x0016, 0xb031 },
+ { 0x0000, 0xec83, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xec84, 0x0000, 0x00f5, 0xb031 },
+ { 0x0000, 0xec85, 0x0000, 0x00e1, 0xb031 },
+ { 0x0000, 0xec86, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xec87, 0x0000, 0x00d0, 0xb031 },
+ { 0x0000, 0xec88, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xec89, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xec8a, 0x0000, 0x0016, 0xb031 },
+ { 0x0000, 0xec8b, 0x0000, 0x0028, 0xb031 },
+ { 0x0000, 0xecb8, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xec90, 0x0000, 0x00fc, 0xb031 },
+ { 0x0000, 0xec91, 0x0000, 0x008b, 0xb031 },
+ { 0x0000, 0xec92, 0x0000, 0x00bd, 0xb031 },
+ { 0x0000, 0xec93, 0x0000, 0x0064, 0xb031 },
+ { 0x0000, 0xec94, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xec95, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xec96, 0x0000, 0x00e7, 0xb031 },
+ { 0x0000, 0xec97, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xeca0, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xeca1, 0x0000, 0x0091, 0xb031 },
+ { 0x0000, 0xeca2, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xeca3, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xeca4, 0x0000, 0x00f6, 0xb031 },
+ { 0x0000, 0xeca5, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xeca6, 0x0000, 0x0093, 0xb031 },
+ { 0x0000, 0xeca7, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xeca8, 0x0000, 0x0003, 0xb031 },
+ { 0x0000, 0xeca9, 0x0000, 0x0087, 0xb031 },
+ { 0x0000, 0xecaa, 0x0000, 0x0099, 0xb031 },
+ { 0x0000, 0xecab, 0x0000, 0x006c, 0xb031 },
+ { 0x0000, 0xebc3, 0x0000, 0x00ff, 0xb031 },
+ { 0x0000, 0xebc4, 0x0000, 0x00fc, 0xb031 },
+ { 0x0000, 0xec00, 0x0000, 0x0005, 0xb031 },
+ { 0x0000, 0xec01, 0x0000, 0x00a9, 0xb031 },
+ { 0x0000, 0xec02, 0x0000, 0x00df, 0xb031 },
+ { 0x0000, 0xec03, 0x0000, 0x007b, 0xb031 },
+ { 0x0000, 0xec05, 0x0000, 0x0079, 0xb031 },
+ { 0x0000, 0xec06, 0x0000, 0x005a, 0xb031 },
+ { 0x0000, 0xec07, 0x0000, 0x0004, 0xb031 },
+ { 0x0000, 0xebc0, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xd1b0, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xd110, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd111, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xd112, 0x0000, 0x0092, 0xb031 },
+ { 0x0000, 0xd113, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd114, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xd115, 0x0000, 0x00f6, 0xb031 },
+ { 0x0000, 0xd116, 0x0000, 0x0072, 0xb031 },
+ { 0x0000, 0xd117, 0x0000, 0x00b0, 0xb031 },
+ { 0x0000, 0xd120, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xd121, 0x0000, 0x00fb, 0xb031 },
+ { 0x0000, 0xd122, 0x0000, 0x0037, 0xb031 },
+ { 0x0000, 0xd123, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd124, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd125, 0x0000, 0x0009, 0xb031 },
+ { 0x0000, 0xd126, 0x0000, 0x0090, 0xb031 },
+ { 0x0000, 0xd127, 0x0000, 0x0020, 0xb031 },
+ { 0x0000, 0xd128, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xd129, 0x0000, 0x00fb, 0xb031 },
+ { 0x0000, 0xd12a, 0x0000, 0x0037, 0xb031 },
+ { 0x0000, 0xd12b, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd0c3, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd0c4, 0x0000, 0x000c, 0xb031 },
+ { 0x0000, 0xd0c0, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xce63, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xce64, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 },
+ { 0x0000, 0xdd04, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xdd05, 0x0000, 0x0006, 0xb031 },
+ { 0x0000, 0xca12, 0x0000, 0x000f, 0xb031 },
+ { 0x0000, 0xca10, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xca82, 0x0000, 0x0077, 0xb031 },
+ { 0x0000, 0xca85, 0x0000, 0x0082, 0xb031 },
+ { 0x0000, 0xca88, 0x0000, 0x00c2, 0xb031 },
+ { 0x0000, 0xca95, 0x0000, 0x003a, 0xb031 },
+ { 0x0000, 0xca9b, 0x0000, 0x006f, 0xb031 },
+ { 0x0000, 0xca10, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xca12, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xc960, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xc961, 0x0000, 0x00e5, 0xb031 },
+ { 0x0000, 0xc962, 0x0000, 0x00eb, 0xb031 },
+ { 0x0000, 0xc963, 0x0000, 0x00c6, 0xb031 },
+ { 0x0000, 0xc964, 0x0000, 0x00ba, 0xb031 },
+ { 0x0000, 0xc965, 0x0000, 0x0061, 0xb031 },
+ { 0x0000, 0xc967, 0x0000, 0x0017, 0xb031 },
+ { 0x0000, 0xc968, 0x0000, 0x00ed, 0xb031 },
+ { 0x0000, 0xc969, 0x0000, 0x003c, 0xb031 },
+ { 0x0000, 0xc96a, 0x0000, 0x008a, 0xb031 },
+ { 0x0000, 0xc96b, 0x0000, 0x00e2, 0xb031 },
+ { 0x0000, 0xc975, 0x0000, 0x003a, 0xb031 },
+ { 0x0000, 0xc97b, 0x0000, 0x006f, 0xb031 },
+ { 0x0000, 0xc936, 0x0000, 0x00f9, 0xb031 },
+ { 0x0000, 0xc9a0, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xc933, 0x0000, 0x000b, 0xb031 },
+ { 0x0000, 0xc934, 0x0000, 0x0002, 0xb031 },
+ { 0x0000, 0xc93f, 0x0000, 0x0014, 0xb031 },
+ { 0x0000, 0xc93e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc93a, 0x0000, 0x0076, 0xb031 },
+ { 0x0000, 0xc93b, 0x0000, 0x0089, 0xb031 },
+ { 0x0000, 0xc930, 0x0000, 0x0013, 0xb031 },
+ { 0x0000, 0xc926, 0x0000, 0x00d1, 0xb031 },
+ { 0x0000, 0xc990, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xc923, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xc924, 0x0000, 0x0004, 0xb031 },
+ { 0x0000, 0xc92f, 0x0000, 0x0018, 0xb031 },
+ { 0x0000, 0xc92e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc920, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xc916, 0x0000, 0x00f9, 0xb031 },
+ { 0x0000, 0xc980, 0x0000, 0x00e1, 0xb031 },
+ { 0x0000, 0xc913, 0x0000, 0x0000, 0xb031 },
+ { 0x0000, 0xc914, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xc91f, 0x0000, 0x0014, 0xb031 },
+ { 0x0000, 0xc91e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc91a, 0x0000, 0x0066, 0xb031 },
+ { 0x0000, 0xc91b, 0x0000, 0x0078, 0xb031 },
+ { 0x0000, 0xc910, 0x0000, 0x000d, 0xb031 },
+ { 0x0000, 0xc946, 0x0000, 0x00f9, 0xb031 },
+ { 0x0000, 0xc9d0, 0x0000, 0x00f1, 0xb031 },
+ { 0x0000, 0xc944, 0x0000, 0x0001, 0xb031 },
+ { 0x0000, 0xc94f, 0x0000, 0x0014, 0xb031 },
+ { 0x0000, 0xc94e, 0x0000, 0x0094, 0xb031 },
+ { 0x0000, 0xc94a, 0x0000, 0x0026, 0xb031 },
+ { 0x0000, 0xc94b, 0x0000, 0x0056, 0xb031 },
+ { 0x0000, 0xc951, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xc600, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc601, 0x0000, 0x0026, 0xb031 },
+ { 0x0000, 0xc602, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xc603, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xc604, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xc605, 0x0000, 0x00da, 0xb031 },
+ { 0x0000, 0xc606, 0x0000, 0x000e, 0xb031 },
+ { 0x0000, 0xc607, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc610, 0x0000, 0x0007, 0xb031 },
+ { 0x0000, 0xc611, 0x0000, 0x00da, 0xb031 },
+ { 0x0000, 0xc612, 0x0000, 0x000e, 0xb031 },
+ { 0x0000, 0xc613, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc614, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xc615, 0x0000, 0x0026, 0xb031 },
+ { 0x0000, 0xc616, 0x0000, 0x004a, 0xb031 },
+ { 0x0000, 0xc617, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xc618, 0x0000, 0x0008, 0xb031 },
+ { 0x0000, 0xc541, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xc802, 0x0000, 0x00d2, 0xb031 },
+ { 0x0000, 0xc902, 0x0000, 0x00d2, 0xb031 },
+ { 0x0000, 0xc800, 0x0000, 0x00f0, 0xb031 },
+ { 0x0000, 0xd250, 0x0000, 0x0087, 0xb031 },
+ { 0x0000, 0xd252, 0x0000, 0x0030, 0xb031 },
+ { 0x0000, 0xd264, 0x0000, 0x00c0, 0xb031 },
+ { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 },
+ { 0x0000, 0xdf00, 0x0000, 0x0010, 0xb031 },
+ { 0x0000, 0xdbb5, 0x0041, 0xd27f, 0xb037 },
+ { 0x0000, 0xddb5, 0x0040, 0x6e3b, 0xb037 },
+ { 0x0000, 0xdb93, 0x0000, 0x009e, 0xb033 },
+ { 0x0000, 0xdd93, 0x0000, 0x009e, 0xb033 },
+ { 0x0000, 0xdb12, 0x0000, 0x00c0, 0xb031 },
+ { 0x0000, 0xdd12, 0x0000, 0x00c0, 0xb031 },
+ { 0x0000, 0xdb08, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xdd08, 0x0000, 0x0080, 0xb031 },
+ { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 },
+ { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 },
+ { 0x0000, 0x0010, 0x0000, 0x0f21, 0x0000 },
+};
+
+/* wake the amp (ea00=0x43, c121=0x0b, f109=0xe0) */
+static const struct alc298_rb16_2025_op alc298_rb16_2025_amp_wake[] = {
+ { 0x0000, 0xea00, 0x0000, 0x0043, 0xb031 },
+ { 0x0000, 0xc121, 0x0000, 0x000b, 0xb031 },
+ { 0x0000, 0xf109, 0x0000, 0x00e0, 0xb031 },
+};
+
+/* park the amp (ea00=0x47, c121=0x0a, f109=0xa0) */
+static const struct alc298_rb16_2025_op alc298_rb16_2025_amp_sleep[] = {
+ { 0x0000, 0xea00, 0x0000, 0x0047, 0xb031 },
+ { 0x0000, 0xc121, 0x0000, 0x000a, 0xb031 },
+ { 0x0000, 0xf109, 0x0000, 0x00a0, 0xb031 },
+};
+
+#endif /* __ALC298_RB16_2025_H */
--
2.43.0