Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c25c73e0 authored by Connor McAdams's avatar Connor McAdams Committed by Takashi Iwai
Browse files

ALSA: hda/ca0132 - Add ZxR DSP post-download commands



This patch adds commands for setting up the ZxR after the DSP is
downloaded. The ZxR already shares most of the post-download commands
from the regular Sound Blaster Z.

Signed-off-by: default avatarConnor McAdams <conmanx360@gmail.com>
Reviewed-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 2e492b8e
Loading
Loading
Loading
Loading
+24 −13
Original line number Diff line number Diff line
@@ -6854,6 +6854,7 @@ static void sbz_chipio_startup_data(struct hda_codec *codec)
	chipio_set_stream_channels(codec, 0x0C, 6);
	chipio_set_stream_control(codec, 0x0C, 1);
	/* No clue what these control */
	if (spec->quirk == QUIRK_SBZ) {
		chipio_write_no_mutex(codec, 0x190030, 0x0001e0c0);
		chipio_write_no_mutex(codec, 0x190034, 0x0001e1c1);
		chipio_write_no_mutex(codec, 0x190038, 0x0001e4c2);
@@ -6866,7 +6867,16 @@ static void sbz_chipio_startup_data(struct hda_codec *codec)
		chipio_write_no_mutex(codec, 0x190054, 0x0001edc9);
		chipio_write_no_mutex(codec, 0x190058, 0x0001eaca);
		chipio_write_no_mutex(codec, 0x19005c, 0x0001ebcb);

	} else if (spec->quirk == QUIRK_ZXR) {
		chipio_write_no_mutex(codec, 0x190038, 0x000140c2);
		chipio_write_no_mutex(codec, 0x19003c, 0x000141c3);
		chipio_write_no_mutex(codec, 0x190040, 0x000150c4);
		chipio_write_no_mutex(codec, 0x190044, 0x000151c5);
		chipio_write_no_mutex(codec, 0x190050, 0x000142c8);
		chipio_write_no_mutex(codec, 0x190054, 0x000143c9);
		chipio_write_no_mutex(codec, 0x190058, 0x000152ca);
		chipio_write_no_mutex(codec, 0x19005c, 0x000153cb);
	}
	chipio_write_no_mutex(codec, 0x19042c, 0x00000001);

	codec_dbg(codec, "Startup Data exited, mutex released.\n");
@@ -8161,6 +8171,7 @@ static int ca0132_init(struct hda_codec *codec)
		r3d_setup_defaults(codec);
		break;
	case QUIRK_SBZ:
	case QUIRK_ZXR:
		sbz_setup_defaults(codec);
		break;
	case QUIRK_AE5: