Merge pull request #1606 from fewtarius/dev
Add support for ROG Ally audio device, thanks to @ruineka and @ChimeraOS!
This commit is contained in:
commit
bd61f843d4
1 changed files with 109 additions and 0 deletions
|
@ -0,0 +1,109 @@
|
|||
diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
|
||||
index d1094bb1aa42..e74683295691 100644
|
||||
--- a/drivers/hid/hid-asus.c
|
||||
+++ b/drivers/hid/hid-asus.c
|
||||
@@ -910,6 +910,11 @@ static int asus_input_mapping(struct hid_device *hdev,
|
||||
|
||||
/* Fn+Right Aura mode next on N-Key keyboard */
|
||||
case 0xb3: asus_map_key_clear(KEY_PROG3); break;
|
||||
+
|
||||
+ case 0xa5: asus_map_key_clear(KEY_F15); break; /* ROG Ally left back */
|
||||
+ case 0xa6: asus_map_key_clear(KEY_F16); break; /* ROG Ally QAM button */
|
||||
+ case 0xa7: asus_map_key_clear(KEY_F17); break; /* ROG Ally ROG long-press */
|
||||
+ case 0xa8: asus_map_key_clear(KEY_F18); break; /* ROG Ally ROG long-press-release */
|
||||
|
||||
default:
|
||||
/* ASUS lazily declares 256 usages, ignore the rest,
|
||||
@@ -1267,6 +1272,9 @@ static const struct hid_device_id asus_devices[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
|
||||
USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2),
|
||||
QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
|
||||
+ USB_DEVICE_ID_ASUSTEK_ROG_NKEY_ALLY),
|
||||
+ QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
|
||||
USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD),
|
||||
QUIRK_ROG_CLAYMORE_II_KEYBOARD },
|
||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||
index c2e9b6d1fd7d..cd6efa46a2bd 100644
|
||||
--- a/drivers/hid/hid-ids.h
|
||||
+++ b/drivers/hid/hid-ids.h
|
||||
@@ -207,6 +207,7 @@
|
||||
#define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3 0x1822
|
||||
#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD 0x1866
|
||||
#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2 0x19b6
|
||||
+#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_ALLY 0x1abe
|
||||
#define USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD 0x196b
|
||||
#define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD 0x1869
|
||||
|
||||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
|
||||
index f70d6a33421d..068a30c0ff4d 100644
|
||||
--- a/sound/pci/hda/patch_realtek.c
|
||||
+++ b/sound/pci/hda/patch_realtek.c
|
||||
@@ -7118,6 +7118,10 @@ enum {
|
||||
ALC294_FIXUP_ASUS_DUAL_SPK,
|
||||
ALC285_FIXUP_THINKPAD_X1_GEN7,
|
||||
ALC285_FIXUP_THINKPAD_HEADSET_JACK,
|
||||
+ ALC294_FIXUP_ASUS_ALLY,
|
||||
+ ALC294_FIXUP_ASUS_ALLY_PINS,
|
||||
+ ALC294_FIXUP_ASUS_ALLY_VERBS,
|
||||
+ ALC294_FIXUP_ASUS_ALLY_SPEAKER,
|
||||
ALC294_FIXUP_ASUS_HPE,
|
||||
ALC294_FIXUP_ASUS_COEF_1B,
|
||||
ALC294_FIXUP_ASUS_GX502_HP,
|
||||
@@ -8414,6 +8418,47 @@ static const struct hda_fixup alc269_fixups[] = {
|
||||
.chained = true,
|
||||
.chain_id = ALC294_FIXUP_SPK2_TO_DAC1
|
||||
},
|
||||
+ [ALC294_FIXUP_ASUS_ALLY] = {
|
||||
+ .type = HDA_FIXUP_FUNC,
|
||||
+ .v.func = cs35l41_fixup_i2c_two,
|
||||
+ .chained = true,
|
||||
+ .chain_id = ALC294_FIXUP_ASUS_ALLY_PINS
|
||||
+ },
|
||||
+ [ALC294_FIXUP_ASUS_ALLY_PINS] = {
|
||||
+ .type = HDA_FIXUP_PINS,
|
||||
+ .v.pins = (const struct hda_pintbl[]) {
|
||||
+ { 0x19, 0x03a11050 },
|
||||
+ { 0x1a, 0x03a11C30 },
|
||||
+ { 0x21, 0x03211420 },
|
||||
+ { }
|
||||
+ },
|
||||
+ .chained = true,
|
||||
+ .chain_id = ALC294_FIXUP_ASUS_ALLY_VERBS
|
||||
+ },
|
||||
+ [ALC294_FIXUP_ASUS_ALLY_VERBS] = {
|
||||
+ .type = HDA_FIXUP_VERBS,
|
||||
+ .v.verbs = (const struct hda_verb[]) {
|
||||
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 },
|
||||
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x5089 },
|
||||
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x46 },
|
||||
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x0004 },
|
||||
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x47 },
|
||||
+ { 0x20, AC_VERB_SET_PROC_COEF, 0xA47A },
|
||||
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x49 },
|
||||
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x0049},
|
||||
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x4A },
|
||||
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x201B },
|
||||
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x6B },
|
||||
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x4278},
|
||||
+ { }
|
||||
+ },
|
||||
+ .chained = true,
|
||||
+ .chain_id = ALC294_FIXUP_ASUS_ALLY_SPEAKER
|
||||
+ },
|
||||
+ [ALC294_FIXUP_ASUS_ALLY_SPEAKER] = {
|
||||
+ .type = HDA_FIXUP_FUNC,
|
||||
+ .v.func = alc285_fixup_speaker2_to_dac1,
|
||||
+ },
|
||||
[ALC285_FIXUP_THINKPAD_X1_GEN7] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc285_fixup_thinkpad_x1_gen7,
|
||||
@@ -9558,6 +9603,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
|
||||
SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
|
||||
SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE),
|
||||
+ SND_PCI_QUIRK(0x1043, 0x17F3, "ROG Ally RC71L_RC71L", ALC294_FIXUP_ASUS_ALLY),
|
||||
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
|
||||
SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
|
||||
SND_PCI_QUIRK(0x144d, 0xc176, "Samsung Notebook 9 Pro (NP930MBE-K04US)", ALC298_FIXUP_SAMSUNG_AMP),
|
Loading…
Reference in a new issue