.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * Additional mixer mapping |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (c) 2002 by Takashi Iwai <tiwai@suse.de> |
---|
5 | | - * |
---|
6 | | - * This program is free software; you can redistribute it and/or modify |
---|
7 | | - * it under the terms of the GNU General Public License as published by |
---|
8 | | - * the Free Software Foundation; either version 2 of the License, or |
---|
9 | | - * (at your option) any later version. |
---|
10 | | - * |
---|
11 | | - * This program is distributed in the hope that it will be useful, |
---|
12 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
13 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
14 | | - * GNU General Public License for more details. |
---|
15 | | - * |
---|
16 | | - * You should have received a copy of the GNU General Public License |
---|
17 | | - * along with this program; if not, write to the Free Software |
---|
18 | | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
---|
19 | | - * |
---|
20 | 6 | */ |
---|
21 | 7 | |
---|
22 | 8 | struct usbmix_dB_map { |
---|
.. | .. |
---|
247 | 233 | }; |
---|
248 | 234 | |
---|
249 | 235 | /* Section "justlink_map" below added by James Courtier-Dutton <James@superbug.demon.co.uk> |
---|
250 | | - * sourced from Maplin Electronics (http://www.maplin.co.uk), part number A56AK |
---|
| 236 | + * sourced from Maplin Electronics (https://www.maplin.co.uk), part number A56AK |
---|
251 | 237 | * Part has 2 connectors that act as a single output. (TOSLINK Optical for digital out, and 3.5mm Jack for Analogue out.) |
---|
252 | 238 | * The USB Mixer publishes a Microphone and extra Volume controls for it, but none exist on the device, |
---|
253 | 239 | * so this map removes all unwanted sliders from alsamixer |
---|
.. | .. |
---|
371 | 357 | { 0 } |
---|
372 | 358 | }; |
---|
373 | 359 | |
---|
374 | | -/* Some mobos shipped with a dummy HD-audio show the invalid GET_MIN/GET_MAX |
---|
375 | | - * response for Input Gain Pad (id=19, control=12) and the connector status |
---|
376 | | - * for SPDIF terminal (id=18). Skip them. |
---|
| 360 | +/* |
---|
| 361 | + * Corsair Virtuoso calls everything "Headset" without this, leading to |
---|
| 362 | + * applications moving the sidetone control instead of the main one. |
---|
377 | 363 | */ |
---|
378 | | -static const struct usbmix_name_map asus_rog_map[] = { |
---|
379 | | - { 18, NULL }, /* OT, connector control */ |
---|
| 364 | +static const struct usbmix_name_map corsair_virtuoso_map[] = { |
---|
| 365 | + { 3, "Mic Capture" }, |
---|
| 366 | + { 6, "Sidetone Playback" }, |
---|
| 367 | + { 0 } |
---|
| 368 | +}; |
---|
| 369 | + |
---|
| 370 | +/* ASUS ROG Zenith II with Realtek ALC1220-VB */ |
---|
| 371 | +static const struct usbmix_name_map asus_zenith_ii_map[] = { |
---|
| 372 | + { 19, NULL, 12 }, /* FU, Input Gain Pad - broken response, disabled */ |
---|
| 373 | + { 16, "Speaker" }, /* OT */ |
---|
| 374 | + { 22, "Speaker Playback" }, /* FU */ |
---|
| 375 | + { 7, "Line" }, /* IT */ |
---|
| 376 | + { 19, "Line Capture" }, /* FU */ |
---|
| 377 | + { 8, "Mic" }, /* IT */ |
---|
| 378 | + { 20, "Mic Capture" }, /* FU */ |
---|
| 379 | + { 9, "Front Mic" }, /* IT */ |
---|
| 380 | + { 21, "Front Mic Capture" }, /* FU */ |
---|
| 381 | + { 17, "IEC958" }, /* OT */ |
---|
| 382 | + { 23, "IEC958 Playback" }, /* FU */ |
---|
| 383 | + {} |
---|
| 384 | +}; |
---|
| 385 | + |
---|
| 386 | +static const struct usbmix_connector_map asus_zenith_ii_connector_map[] = { |
---|
| 387 | + { 10, 16 }, /* (Back) Speaker */ |
---|
| 388 | + { 11, 17 }, /* SPDIF */ |
---|
| 389 | + { 13, 7 }, /* Line */ |
---|
| 390 | + { 14, 8 }, /* Mic */ |
---|
| 391 | + { 15, 9 }, /* Front Mic */ |
---|
| 392 | + {} |
---|
| 393 | +}; |
---|
| 394 | + |
---|
| 395 | +static const struct usbmix_name_map lenovo_p620_rear_map[] = { |
---|
380 | 396 | { 19, NULL, 12 }, /* FU, Input Gain Pad */ |
---|
381 | 397 | {} |
---|
382 | 398 | }; |
---|
.. | .. |
---|
528 | 544 | .map = maya44_map, |
---|
529 | 545 | }, |
---|
530 | 546 | { |
---|
| 547 | + .id = USB_ID(0x2708, 0x0002), /* Audient iD14 */ |
---|
| 548 | + .ignore_ctl_error = 1, |
---|
| 549 | + }, |
---|
| 550 | + { |
---|
531 | 551 | /* KEF X300A */ |
---|
532 | 552 | .id = USB_ID(0x27ac, 0x1000), |
---|
533 | 553 | .map = scms_usb3318_map, |
---|
.. | .. |
---|
538 | 558 | .map = scms_usb3318_map, |
---|
539 | 559 | }, |
---|
540 | 560 | { |
---|
| 561 | + /* Corsair Virtuoso SE Latest (wired mode) */ |
---|
| 562 | + .id = USB_ID(0x1b1c, 0x0a3f), |
---|
| 563 | + .map = corsair_virtuoso_map, |
---|
| 564 | + }, |
---|
| 565 | + { |
---|
| 566 | + /* Corsair Virtuoso SE Latest (wireless mode) */ |
---|
| 567 | + .id = USB_ID(0x1b1c, 0x0a40), |
---|
| 568 | + .map = corsair_virtuoso_map, |
---|
| 569 | + }, |
---|
| 570 | + { |
---|
| 571 | + .id = USB_ID(0x30be, 0x0101), /* Schiit Hel */ |
---|
| 572 | + .ignore_ctl_error = 1, |
---|
| 573 | + }, |
---|
| 574 | + { |
---|
541 | 575 | /* Bose Companion 5 */ |
---|
542 | 576 | .id = USB_ID(0x05a7, 0x1020), |
---|
543 | 577 | .map = bose_companion5_map, |
---|
| 578 | + }, |
---|
| 579 | + { |
---|
| 580 | + /* Corsair Virtuoso SE (wired mode) */ |
---|
| 581 | + .id = USB_ID(0x1b1c, 0x0a3d), |
---|
| 582 | + .map = corsair_virtuoso_map, |
---|
| 583 | + }, |
---|
| 584 | + { |
---|
| 585 | + /* Corsair Virtuoso SE (wireless mode) */ |
---|
| 586 | + .id = USB_ID(0x1b1c, 0x0a3e), |
---|
| 587 | + .map = corsair_virtuoso_map, |
---|
| 588 | + }, |
---|
| 589 | + { |
---|
| 590 | + /* Corsair Virtuoso (wired mode) */ |
---|
| 591 | + .id = USB_ID(0x1b1c, 0x0a41), |
---|
| 592 | + .map = corsair_virtuoso_map, |
---|
| 593 | + }, |
---|
| 594 | + { |
---|
| 595 | + /* Corsair Virtuoso (wireless mode) */ |
---|
| 596 | + .id = USB_ID(0x1b1c, 0x0a42), |
---|
| 597 | + .map = corsair_virtuoso_map, |
---|
544 | 598 | }, |
---|
545 | 599 | { /* Gigabyte TRX40 Aorus Master (rear panel + front mic) */ |
---|
546 | 600 | .id = USB_ID(0x0414, 0xa001), |
---|
.. | .. |
---|
551 | 605 | .map = trx40_mobo_map, |
---|
552 | 606 | .connector_map = trx40_mobo_connector_map, |
---|
553 | 607 | }, |
---|
554 | | - { /* ASUS ROG Zenith II */ |
---|
| 608 | + { /* ASUS ROG Zenith II (main audio) */ |
---|
555 | 609 | .id = USB_ID(0x0b05, 0x1916), |
---|
556 | | - .map = asus_rog_map, |
---|
| 610 | + .map = asus_zenith_ii_map, |
---|
| 611 | + .connector_map = asus_zenith_ii_connector_map, |
---|
557 | 612 | }, |
---|
558 | 613 | { /* ASUS ROG Strix */ |
---|
559 | 614 | .id = USB_ID(0x0b05, 0x1917), |
---|
560 | | - .map = asus_rog_map, |
---|
| 615 | + .map = trx40_mobo_map, |
---|
| 616 | + .connector_map = trx40_mobo_connector_map, |
---|
561 | 617 | }, |
---|
562 | 618 | { /* MSI TRX40 Creator */ |
---|
563 | 619 | .id = USB_ID(0x0db0, 0x0d64), |
---|
.. | .. |
---|
573 | 629 | .id = USB_ID(0x26ce, 0x0a01), |
---|
574 | 630 | .map = trx40_mobo_map, |
---|
575 | 631 | .connector_map = trx40_mobo_connector_map, |
---|
| 632 | + }, |
---|
| 633 | + { /* Lenovo ThinkStation P620 Rear */ |
---|
| 634 | + .id = USB_ID(0x17aa, 0x1046), |
---|
| 635 | + .map = lenovo_p620_rear_map, |
---|
| 636 | + }, |
---|
| 637 | + { |
---|
| 638 | + /* Sennheiser Communications Headset [PC 8] */ |
---|
| 639 | + .id = USB_ID(0x1395, 0x0025), |
---|
| 640 | + .map = sennheiser_pc8_map, |
---|
576 | 641 | }, |
---|
577 | 642 | { 0 } /* terminator */ |
---|
578 | 643 | }; |
---|
.. | .. |
---|
639 | 704 | { |
---|
640 | 705 | .id = UAC3_FUNCTION_SUBCLASS_SPEAKERPHONE, |
---|
641 | 706 | .map = uac3_badd_speakerphone_map, |
---|
642 | | - }, |
---|
643 | | - { |
---|
644 | | - /* Sennheiser Communications Headset [PC 8] */ |
---|
645 | | - .id = USB_ID(0x1395, 0x0025), |
---|
646 | | - .map = sennheiser_pc8_map, |
---|
647 | 707 | }, |
---|
648 | 708 | { 0 } /* terminator */ |
---|
649 | 709 | }; |
---|