Changeset 759
- Timestamp:
- Nov 10, 2023, 8:42:28 AM (21 months ago)
- Location:
- GPL/branches/uniaud32-exp/alsa-kernel
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/uniaud32-exp/alsa-kernel/core/jack.c
r737 r759 655 655 unsigned int mask_bits = 0; 656 656 #ifdef CONFIG_SND_JACK_INPUT_DEV 657 struct input_dev *idev; 657 658 int i; 658 659 #endif … … 671 672 672 673 #ifdef CONFIG_SND_JACK_INPUT_DEV 673 mutex_lock(&jack->input_dev_lock); 674 if (!jack->input_dev) { 675 mutex_unlock(&jack->input_dev_lock); 674 idev = input_get_device(jack->input_dev); 675 if (!idev) 676 676 return; 677 }678 677 679 678 for (i = 0; i < ARRAY_SIZE(jack->key); i++) { … … 681 680 682 681 if (jack->type & testbit) 683 input_report_key( jack->input_dev, jack->key[i],682 input_report_key(idev, jack->key[i], 684 683 status & testbit); 685 684 } … … 689 688 690 689 if (jack->type & testbit) 691 input_report_switch( jack->input_dev,690 input_report_switch(idev, 692 691 jack_switch_types[i], 693 692 status & testbit); 694 693 } 695 694 696 input_sync( jack->input_dev);697 mutex_unlock(&jack->input_dev_lock);695 input_sync(idev); 696 input_put_device(idev); 698 697 #endif /* CONFIG_SND_JACK_INPUT_DEV */ 699 698 } -
GPL/branches/uniaud32-exp/alsa-kernel/core/oss/pcm_plugin.h
r629 r759 142 142 void *snd_pcm_plug_buf_alloc(struct snd_pcm_substream *plug, snd_pcm_uframes_t size); 143 143 void snd_pcm_plug_buf_unlock(struct snd_pcm_substream *plug, void *ptr); 144 #else 145 146 static inline snd_pcm_sframes_t snd_pcm_plug_client_size(struct snd_pcm_substream *handle, snd_pcm_uframes_t drv_size) { return drv_size; } 147 static inline snd_pcm_sframes_t snd_pcm_plug_slave_size(struct snd_pcm_substream *handle, snd_pcm_uframes_t clt_size) { return clt_size; } 148 static inline int snd_pcm_plug_slave_format(int format, const struct snd_mask *format_mask) { return format; } 149 150 #endif 151 144 152 snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, 145 153 const char *ptr, snd_pcm_uframes_t size, … … 151 159 snd_pcm_sframes_t snd_pcm_oss_readv3(struct snd_pcm_substream *substream, 152 160 void **bufs, snd_pcm_uframes_t frames); 153 154 #else155 156 static inline snd_pcm_sframes_t snd_pcm_plug_client_size(struct snd_pcm_substream *handle, snd_pcm_uframes_t drv_size) { return drv_size; }157 static inline snd_pcm_sframes_t snd_pcm_plug_slave_size(struct snd_pcm_substream *handle, snd_pcm_uframes_t clt_size) { return clt_size; }158 static inline int snd_pcm_plug_slave_format(int format, const struct snd_mask *format_mask) { return format; }159 160 #endif161 161 162 162 #ifdef PLUGIN_DEBUG -
GPL/branches/uniaud32-exp/alsa-kernel/core/pcm_lib.c
r756 r759 2192 2192 if (ret < 0) { 2193 2193 runtime->control->appl_ptr = old_appl_ptr; 2194 if (ret == -EPIPE) 2195 __snd_pcm_xrun(substream); 2194 2196 return ret; 2195 2197 } -
GPL/branches/uniaud32-exp/alsa-kernel/core/pcm_memory.c
r750 r759 32 32 MODULE_PARM_DESC(max_alloc_per_card, "Max total allocation bytes per card."); 33 33 34 static void __update_allocated_size(struct snd_card *card, ssize_t bytes) 35 { 36 card->total_pcm_alloc_bytes += bytes; 37 } 38 39 static void update_allocated_size(struct snd_card *card, ssize_t bytes) 40 { 41 mutex_lock(&card->memory_mutex); 42 __update_allocated_size(card, bytes); 43 mutex_unlock(&card->memory_mutex); 44 } 45 46 static void decrease_allocated_size(struct snd_card *card, size_t bytes) 47 { 48 mutex_lock(&card->memory_mutex); 49 WARN_ON(card->total_pcm_alloc_bytes < bytes); 50 __update_allocated_size(card, -(ssize_t)bytes); 51 mutex_unlock(&card->memory_mutex); 52 } 53 34 54 static int do_alloc_pages(struct snd_card *card, int type, struct device *dev, 35 55 int str, size_t size, struct snd_dma_buffer *dmab) … … 38 58 int err; 39 59 60 /* check and reserve the requested size */ 61 mutex_lock(&card->memory_mutex); 40 62 if (max_alloc_per_card && 41 card->total_pcm_alloc_bytes + size > max_alloc_per_card) 63 card->total_pcm_alloc_bytes + size > max_alloc_per_card) { 64 mutex_unlock(&card->memory_mutex); 42 65 return -ENOMEM; 66 } 67 __update_allocated_size(card, size); 68 mutex_unlock(&card->memory_mutex); 43 69 44 70 if (str == SNDRV_PCM_STREAM_PLAYBACK) … … 48 74 err = snd_dma_alloc_dir_pages(type, dev, dir, size, dmab); 49 75 if (!err) { 50 mutex_lock(&card->memory_mutex); 51 card->total_pcm_alloc_bytes += dmab->bytes; 52 mutex_unlock(&card->memory_mutex); 76 /* the actual allocation size might be bigger than requested, 77 * and we need to correct the account 78 */ 79 if (dmab->bytes != size) 80 update_allocated_size(card, dmab->bytes - size); 81 } else { 82 /* take back on allocation failure */ 83 decrease_allocated_size(card, size); 53 84 } 54 85 return err; … … 59 90 if (!dmab->area) 60 91 return; 61 mutex_lock(&card->memory_mutex); 62 WARN_ON(card->total_pcm_alloc_bytes < dmab->bytes); 63 card->total_pcm_alloc_bytes -= dmab->bytes; 64 mutex_unlock(&card->memory_mutex); 92 decrease_allocated_size(card, dmab->bytes); 65 93 snd_dma_free_pages(dmab); 66 94 dmab->area = NULL; -
GPL/branches/uniaud32-exp/alsa-kernel/core/seq/oss/seq_oss_midi.c
r739 r759 38 38 struct seq_oss_devinfo *devinfo; /* assigned OSSseq device */ 39 39 snd_use_lock_t use_lock; 40 struct mutex open_mutex; 40 41 }; 41 42 … … 173 174 mdev->opened = 0; 174 175 snd_use_lock_init(&mdev->use_lock); 176 mutex_init(&mdev->open_mutex); 175 177 176 178 /* copy and truncate the name of synth device */ … … 323 325 struct seq_oss_midi *mdev; 324 326 struct snd_seq_port_subscribe subs; 327 int err; 325 328 326 329 mdev = get_mididev(dp, dev); … … 328 331 return -ENODEV; 329 332 333 mutex_lock(&mdev->open_mutex); 330 334 /* already used? */ 331 335 if (mdev->opened && mdev->devinfo != dp) { 332 snd_use_lock_free(&mdev->use_lock);333 return -EBUSY;336 err = -EBUSY; 337 goto unlock; 334 338 } 335 339 … … 341 345 perm &= mdev->flags; 342 346 if (perm == 0) { 343 snd_use_lock_free(&mdev->use_lock);344 return -ENXIO;347 err = -ENXIO; 348 goto unlock; 345 349 } 346 350 347 351 /* already opened? */ 348 352 if ((mdev->opened & perm) == perm) { 349 snd_use_lock_free(&mdev->use_lock);350 return 0;353 err = 0; 354 goto unlock; 351 355 } 352 356 … … 373 377 374 378 if (! mdev->opened) { 375 snd_use_lock_free(&mdev->use_lock);376 return -ENXIO;379 err = -ENXIO; 380 goto unlock; 377 381 } 378 382 379 383 mdev->devinfo = dp; 384 err = 0; 385 386 unlock: 387 mutex_unlock(&mdev->open_mutex); 380 388 snd_use_lock_free(&mdev->use_lock); 381 return 0;389 return err; 382 390 } 383 391 … … 394 402 if (!mdev) 395 403 return -ENODEV; 396 if (! mdev->opened || mdev->devinfo != dp) { 397 snd_use_lock_free(&mdev->use_lock); 398 return 0; 399 } 404 mutex_lock(&mdev->open_mutex); 405 if (!mdev->opened || mdev->devinfo != dp) 406 goto unlock; 400 407 401 408 memset(&subs, 0, sizeof(subs)); … … 416 423 mdev->devinfo = NULL; 417 424 425 unlock: 426 mutex_unlock(&mdev->open_mutex); 418 427 snd_use_lock_free(&mdev->use_lock); 419 428 return 0; -
GPL/branches/uniaud32-exp/alsa-kernel/hda/hdac_device.c
r738 r759 623 623 #if 0 //fixme 624 624 if (!atomic_inc_not_zero(&codec->in_pm)) { 625 int ret = pm_runtime_get_if_ in_use(&codec->dev);625 int ret = pm_runtime_get_if_active(&codec->dev, true); 626 626 if (!ret) 627 627 return -1; -
GPL/branches/uniaud32-exp/alsa-kernel/hda/hdac_regmap.c
r693 r759 614 614 void snd_hdac_regmap_sync(struct hdac_device *codec) 615 615 { 616 if (codec->regmap) {617 mutex_lock(&codec->regmap_lock);616 mutex_lock(&codec->regmap_lock); 617 if (codec->regmap) 618 618 regcache_sync(codec->regmap); 619 mutex_unlock(&codec->regmap_lock); 620 } 619 mutex_unlock(&codec->regmap_lock); 621 620 } 622 621 EXPORT_SYMBOL_GPL(snd_hdac_regmap_sync); -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/soc-acpi.h
r739 r759 171 171 struct snd_soc_acpi_mach { 172 172 u8 id[ACPI_ID_LEN]; 173 const char *uid; 173 174 const struct snd_soc_acpi_codecs *comp_ids; 174 175 const u32 link_mask; -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/soc-dpcm.h
r739 r759 126 126 struct snd_soc_pcm_runtime *be, int stream); 127 127 128 /* can this BE perform prepare */ 129 int snd_soc_dpcm_can_be_prepared(struct snd_soc_pcm_runtime *fe, 130 struct snd_soc_pcm_runtime *be, int stream); 131 128 132 /* is the current PCM operation for this FE ? */ 129 133 int snd_soc_dpcm_fe_can_update(struct snd_soc_pcm_runtime *fe, int stream); -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/version.h
r757 r759 1 1 /* include/version.h */ 2 #define CONFIG_SND_VERSION "6.1. 18"2 #define CONFIG_SND_VERSION "6.1.62" 3 3 #define CONFIG_SND_DATE "" -
GPL/branches/uniaud32-exp/alsa-kernel/pci/ac97/ac97_codec.c
r755 r759 2122 2122 }; 2123 2123 2124 if (rac97) 2125 *rac97 = NULL; 2126 if (snd_BUG_ON(!bus || !template)) 2124 if (snd_BUG_ON(!bus || !template || !rac97)) 2127 2125 return -EINVAL; 2126 *rac97 = NULL; 2128 2127 if (snd_BUG_ON(template->num >= 4)) 2129 2128 return -EINVAL; -
GPL/branches/uniaud32-exp/alsa-kernel/pci/cmipci.c
r737 r759 2709 2709 if (cm->can_ac3_hw) { 2710 2710 kctl = snd_ctl_new1(&snd_cmipci_spdif_default, cm); 2711 kctl->id.device = pcm_spdif_device; 2711 2712 err = snd_ctl_add(card, kctl); 2712 2713 if (err < 0) 2713 2714 return err; 2715 kctl = snd_ctl_new1(&snd_cmipci_spdif_mask, cm); 2714 2716 kctl->id.device = pcm_spdif_device; 2715 kctl = snd_ctl_new1(&snd_cmipci_spdif_mask, cm);2716 2717 err = snd_ctl_add(card, kctl); 2717 2718 if (err < 0) 2718 2719 return err; 2720 kctl = snd_ctl_new1(&snd_cmipci_spdif_stream, cm); 2719 2721 kctl->id.device = pcm_spdif_device; 2720 kctl = snd_ctl_new1(&snd_cmipci_spdif_stream, cm);2721 2722 err = snd_ctl_add(card, kctl); 2722 2723 if (err < 0) 2723 2724 return err; 2724 kctl->id.device = pcm_spdif_device;2725 2725 } 2726 2726 if (cm->chip_version <= 37) { -
GPL/branches/uniaud32-exp/alsa-kernel/pci/emu10k1/emufx.c
r697 r759 1565 1565 1566 1566 /* Master volume (will be renamed later) */ 1567 A_OP(icode, &ptr, iMAC0, A_GPR(playback+0+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+0+SND_EMU10K1_PLAYBACK_CHANNELS)); 1568 A_OP(icode, &ptr, iMAC0, A_GPR(playback+1+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+1+SND_EMU10K1_PLAYBACK_CHANNELS)); 1569 A_OP(icode, &ptr, iMAC0, A_GPR(playback+2+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+2+SND_EMU10K1_PLAYBACK_CHANNELS)); 1570 A_OP(icode, &ptr, iMAC0, A_GPR(playback+3+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+3+SND_EMU10K1_PLAYBACK_CHANNELS)); 1571 A_OP(icode, &ptr, iMAC0, A_GPR(playback+4+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+4+SND_EMU10K1_PLAYBACK_CHANNELS)); 1572 A_OP(icode, &ptr, iMAC0, A_GPR(playback+5+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+5+SND_EMU10K1_PLAYBACK_CHANNELS)); 1573 A_OP(icode, &ptr, iMAC0, A_GPR(playback+6+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+6+SND_EMU10K1_PLAYBACK_CHANNELS)); 1574 A_OP(icode, &ptr, iMAC0, A_GPR(playback+7+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+7+SND_EMU10K1_PLAYBACK_CHANNELS)); 1567 for (z = 0; z < 8; z++) 1568 A_OP(icode, &ptr, iMAC0, A_GPR(playback+z+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+z+SND_EMU10K1_PLAYBACK_CHANNELS)); 1575 1569 snd_emu10k1_init_mono_control(&controls[nctl++], "Wave Master Playback Volume", gpr, 0); 1576 1570 gpr += 2; … … 1656 1650 gpr, tmp); 1657 1651 */ 1658 /* For the EMU1010: How to get 32bit values from the DSP. High 16bits into L, low 16bits into R. */1659 /* A_P16VIN(0) is delayed by one sample,1660 * so all other A_P16VIN channels will need to also be delayed1661 */1662 /* Left ADC in. 1 of 2 */1663 1652 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_P16VIN(0x0), A_FXBUS2(0) ); 1664 /* Right ADC in 1 of 2 */ 1665 gpr_map[gpr++] = 0x00000000; 1666 /* Delaying by one sample: instead of copying the input 1667 * value A_P16VIN to output A_FXBUS2 as in the first channel, 1668 * we use an auxiliary register, delaying the value by one 1669 * sample 1670 */ 1671 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr - 1), A_FXBUS2(2) ); 1672 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x1), A_C_00000000, A_C_00000000); 1673 gpr_map[gpr++] = 0x00000000; 1674 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr - 1), A_FXBUS2(4) ); 1675 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x2), A_C_00000000, A_C_00000000); 1676 gpr_map[gpr++] = 0x00000000; 1677 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr - 1), A_FXBUS2(6) ); 1678 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x3), A_C_00000000, A_C_00000000); 1679 /* For 96kHz mode */ 1680 /* Left ADC in. 2 of 2 */ 1681 gpr_map[gpr++] = 0x00000000; 1682 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr - 1), A_FXBUS2(0x8) ); 1683 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x4), A_C_00000000, A_C_00000000); 1684 /* Right ADC in 2 of 2 */ 1685 gpr_map[gpr++] = 0x00000000; 1686 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr - 1), A_FXBUS2(0xa) ); 1687 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x5), A_C_00000000, A_C_00000000); 1688 gpr_map[gpr++] = 0x00000000; 1689 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr - 1), A_FXBUS2(0xc) ); 1690 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x6), A_C_00000000, A_C_00000000); 1691 gpr_map[gpr++] = 0x00000000; 1692 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr - 1), A_FXBUS2(0xe) ); 1693 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x7), A_C_00000000, A_C_00000000); 1694 /* Pavel Hofman - we still have voices, A_FXBUS2s, and 1695 * A_P16VINs available - 1696 * let's add 8 more capture channels - total of 16 1697 */ 1698 gpr_map[gpr++] = 0x00000000; 1699 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1700 bit_shifter16, 1701 A_GPR(gpr - 1), 1702 A_FXBUS2(0x10)); 1703 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x8), 1704 A_C_00000000, A_C_00000000); 1705 gpr_map[gpr++] = 0x00000000; 1706 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1707 bit_shifter16, 1708 A_GPR(gpr - 1), 1709 A_FXBUS2(0x12)); 1710 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0x9), 1711 A_C_00000000, A_C_00000000); 1712 gpr_map[gpr++] = 0x00000000; 1713 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1714 bit_shifter16, 1715 A_GPR(gpr - 1), 1716 A_FXBUS2(0x14)); 1717 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0xa), 1718 A_C_00000000, A_C_00000000); 1719 gpr_map[gpr++] = 0x00000000; 1720 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1721 bit_shifter16, 1722 A_GPR(gpr - 1), 1723 A_FXBUS2(0x16)); 1724 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0xb), 1725 A_C_00000000, A_C_00000000); 1726 gpr_map[gpr++] = 0x00000000; 1727 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1728 bit_shifter16, 1729 A_GPR(gpr - 1), 1730 A_FXBUS2(0x18)); 1731 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0xc), 1732 A_C_00000000, A_C_00000000); 1733 gpr_map[gpr++] = 0x00000000; 1734 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1735 bit_shifter16, 1736 A_GPR(gpr - 1), 1737 A_FXBUS2(0x1a)); 1738 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0xd), 1739 A_C_00000000, A_C_00000000); 1740 gpr_map[gpr++] = 0x00000000; 1741 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1742 bit_shifter16, 1743 A_GPR(gpr - 1), 1744 A_FXBUS2(0x1c)); 1745 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0xe), 1746 A_C_00000000, A_C_00000000); 1747 gpr_map[gpr++] = 0x00000000; 1748 snd_emu10k1_audigy_dsp_convert_32_to_2x16(icode, &ptr, tmp, 1749 bit_shifter16, 1750 A_GPR(gpr - 1), 1751 A_FXBUS2(0x1e)); 1752 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 1), A_P16VIN(0xf), 1753 A_C_00000000, A_C_00000000); 1653 /* A_P16VIN(0) is delayed by one sample, so all other A_P16VIN channels 1654 * will need to also be delayed; we use an auxiliary register for that. */ 1655 for (z = 1; z < 0x10; z++) { 1656 snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, bit_shifter16, A_GPR(gpr), A_FXBUS2(z * 2) ); 1657 A_OP(icode, &ptr, iACC3, A_GPR(gpr), A_P16VIN(z), A_C_00000000, A_C_00000000); 1658 gpr_map[gpr++] = 0x00000000; 1659 } 1754 1660 } 1755 1661 -
GPL/branches/uniaud32-exp/alsa-kernel/pci/emu10k1/emupcm.c
r739 r759 1237 1237 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); 1238 1238 1239 emu->capture_ interrupt = NULL;1239 emu->capture_mic_interrupt = NULL; 1240 1240 emu->pcm_capture_mic_substream = NULL; 1241 1241 return 0; … … 1345 1345 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream); 1346 1346 1347 emu->capture_ interrupt = NULL;1347 emu->capture_efx_interrupt = NULL; 1348 1348 emu->pcm_capture_efx_substream = NULL; 1349 1349 return 0; … … 1782 1782 int err; 1783 1783 1784 err = snd_pcm_new(emu->card, "emu10k1 efx", device, 8, 1, &pcm);1784 err = snd_pcm_new(emu->card, "emu10k1 efx", device, emu->audigy ? 0 : 8, 1, &pcm); 1785 1785 if (err < 0) 1786 1786 return err; … … 1788 1788 pcm->private_data = emu; 1789 1789 1790 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_fx8010_playback_ops); 1790 if (!emu->audigy) 1791 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_fx8010_playback_ops); 1791 1792 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_efx_ops); 1792 1793 1793 1794 pcm->info_flags = 0; 1794 strcpy(pcm->name, "Multichannel Capture/PT Playback"); 1795 if (emu->audigy) 1796 strcpy(pcm->name, "Multichannel Capture"); 1797 else 1798 strcpy(pcm->name, "Multichannel Capture/PT Playback"); 1795 1799 emu->pcm_efx = pcm; 1796 1800 -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_codec.c
r757 r759 2476 2476 /* suppose a single SPDIF device */ 2477 2477 for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) { 2478 struct snd_ctl_elem_id id; 2479 2478 2480 kctl = find_mixer_ctl(codec, dig_mix->name, 0, 0); 2479 2481 if (!kctl) 2480 2482 break; 2481 kctl->id.index = spdif_index; 2483 id = kctl->id; 2484 id.index = spdif_index; 2485 snd_ctl_rename_id(codec->card, &kctl->id, &id); 2482 2486 } 2483 2487 bus->primary_dig_out_type = HDA_PCM_TYPE_HDMI; -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_generic.c
r711 r759 1159 1159 } 1160 1160 1161 static const char * const channel_name[ 4] = {1162 "Front", "Surround", "CLFE", "Side" 1161 static const char * const channel_name[] = { 1162 "Front", "Surround", "CLFE", "Side", "Back", 1163 1163 }; 1164 1164 … … 1186 1186 /* multi-io channels */ 1187 1187 if (ch >= cfg->line_outs) 1188 return channel_name[ch];1188 goto fixed_name; 1189 1189 1190 1190 switch (cfg->line_out_type) { … … 1238 1238 return "Line Out"; 1239 1239 1240 fixed_name: 1240 1241 if (ch >= ARRAY_SIZE(channel_name)) { 1241 1242 snd_BUG(); -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_intel.c
r757 r759 250 250 AZX_DRIVER_ATIHDMI, 251 251 AZX_DRIVER_ATIHDMI_NS, 252 AZX_DRIVER_GFHDMI, 252 253 AZX_DRIVER_VIA, 253 254 AZX_DRIVER_SIS, … … 351 352 #endif 352 353 353 #define CONTROLLER_IN_GPU(pci) (((pci)->device == 0x0a0c) || \ 354 #define CONTROLLER_IN_GPU(pci) (((pci)->vendor == 0x8086) && \ 355 (((pci)->device == 0x0a0c) || \ 354 356 ((pci)->device == 0x0c0c) || \ 355 357 ((pci)->device == 0x0d0c) || \ … … 358 360 ((pci)->device == 0x4f90) || \ 359 361 ((pci)->device == 0x4f91) || \ 360 ((pci)->device == 0x4f92)) 362 ((pci)->device == 0x4f92))) 361 363 362 364 #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98) … … 371 373 [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI", 372 374 [AZX_DRIVER_ATIHDMI_NS] = "HDA ATI HDMI", 375 [AZX_DRIVER_GFHDMI] = "HDA GF HDMI", 373 376 [AZX_DRIVER_VIA] = "HDA VIA VT82xx", 374 377 [AZX_DRIVER_SIS] = "HDA SIS966", … … 1780 1783 1781 1784 switch (chip->driver_type) { 1785 /* 1786 * increase the bdl size for Glenfly Gpus for hardware 1787 * limitation on hdac interrupt interval 1788 */ 1789 case AZX_DRIVER_GFHDMI: 1790 return 128; 1782 1791 case AZX_DRIVER_ICH: 1783 1792 case AZX_DRIVER_PCH: … … 1895 1904 } 1896 1905 #endif 1906 /* 1907 * Fix response write request not synced to memory when handle 1908 * hdac interrupt on Glenfly Gpus 1909 */ 1910 if (chip->driver_type == AZX_DRIVER_GFHDMI) 1911 bus->polling_mode = 1; 1897 1912 1898 1913 err = pcim_iomap_regions(pci, 1 << 0, "ICH HD audio"); … … 1995 2010 chip->capture_streams = ATIHDMI_NUM_CAPTURE; 1996 2011 break; 2012 case AZX_DRIVER_GFHDMI: 1997 2013 case AZX_DRIVER_GENERIC: 1998 2014 default: … … 2248 2264 /* https://bugzilla.kernel.org/show_bug.cgi?id=198611 */ 2249 2265 SND_PCI_QUIRK(0x17aa, 0x2227, "Lenovo X1 Carbon 3rd Gen", 0), 2266 SND_PCI_QUIRK(0x17aa, 0x316e, "Lenovo ThinkCentre M70q", 0), 2250 2267 /* https://bugzilla.redhat.com/show_bug.cgi?id=1689623 */ 2251 2268 SND_PCI_QUIRK(0x17aa, 0x367b, "Lenovo IdeaCentre B550", 0), … … 2582 2599 /* Meteorlake-P */ 2583 2600 { PCI_DEVICE(0x8086, 0x7e28), 2601 .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, 2602 /* Lunarlake-P */ 2603 { PCI_DEVICE(0x8086, 0xa828), 2584 2604 .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, 2585 2605 /* Broxton-P(Apollolake) */ … … 2779 2799 .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS | 2780 2800 AZX_DCAPS_PM_RUNTIME }, 2801 /* GLENFLY */ 2802 { PCI_DEVICE(0x6766, PCI_ANY_ID), 2803 .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8, 2804 .class_mask = 0xffffff, 2805 .driver_data = AZX_DRIVER_GFHDMI | AZX_DCAPS_POSFIX_LPIB | 2806 AZX_DCAPS_NO_MSI | AZX_DCAPS_NO_64BIT }, 2781 2807 /* VIA VT8251/VT8237A */ 2782 2808 { PCI_DEVICE(0x1106, 0x3288), .driver_data = AZX_DRIVER_VIA }, -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_ca0132.c
r757 r759 1312 1312 SND_PCI_QUIRK(0x1458, 0xA036, "Gigabyte GA-Z170X-Gaming 7", QUIRK_R3DI), 1313 1313 SND_PCI_QUIRK(0x3842, 0x1038, "EVGA X99 Classified", QUIRK_R3DI), 1314 SND_PCI_QUIRK(0x3842, 0x104b, "EVGA X299 Dark", QUIRK_R3DI), 1314 1315 SND_PCI_QUIRK(0x3842, 0x1055, "EVGA Z390 DARK", QUIRK_R3DI), 1315 1316 SND_PCI_QUIRK(0x1102, 0x0013, "Recon3D", QUIRK_R3D), … … 4238 4239 for (i = 0; i < TUNING_CTLS_COUNT; i++) 4239 4240 if (nid == ca0132_tuning_ctls[i].nid) 4240 break; 4241 4241 goto found; 4242 4243 return -EINVAL; 4244 found: 4242 4245 snd_hda_power_up(codec); 4243 4246 dspio_set_param(codec, ca0132_tuning_ctls[i].mid, 0x20, -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_conexant.c
r757 r759 1043 1043 SND_PCI_QUIRK(0x17aa, 0x390b, "Lenovo G50-80", CXT_FIXUP_STEREO_DMIC), 1044 1044 SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC), 1045 SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_PINCFG_LENOVO_NOTEBOOK), 1045 /* NOTE: we'd need to extend the quirk for 17aa:3977 as the same 1046 * PCI SSID is used on multiple Lenovo models 1047 */ 1048 SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC), 1046 1049 SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo G50-70", CXT_FIXUP_STEREO_DMIC), 1047 1050 SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC), … … 1066 1069 { .id = CXT_FIXUP_HP_ZBOOK_MUTE_LED, .name = "hp-zbook-mute-led" }, 1067 1070 { .id = CXT_FIXUP_HP_MIC_NO_PRESENCE, .name = "hp-mic-fix" }, 1071 { .id = CXT_PINCFG_LENOVO_NOTEBOOK, .name = "lenovo-20149" }, 1068 1072 {0} 1069 1073 }; -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_hdmi.c
r757 r759 94 94 struct hdmi_pcm *pcm; /* pointer to spec->pcm_rec[n] dynamically*/ 95 95 int pcm_idx; /* which pcm is attached. -1 means no pcm is attached */ 96 int prev_pcm_idx; /* previously assigned pcm index */ 96 97 int repoll_count; 97 98 bool setup; /* the stream has been set up by prepare callback */ … … 1397 1398 if (per_pin->pcm) 1398 1399 return; 1400 /* try the previously used slot at first */ 1401 idx = per_pin->prev_pcm_idx; 1402 if (idx >= 0) { 1403 if (!test_bit(idx, &spec->pcm_bitmap)) 1404 goto found; 1405 per_pin->prev_pcm_idx = -1; /* no longer valid, clear it */ 1406 } 1399 1407 idx = hdmi_find_pcm_slot(spec, per_pin); 1400 1408 if (idx == -EBUSY) 1401 1409 return; 1410 found: 1402 1411 per_pin->pcm_idx = idx; 1403 1412 per_pin->pcm = get_hdmi_pcm(spec, idx); … … 1415 1424 idx = per_pin->pcm_idx; 1416 1425 per_pin->pcm_idx = -1; 1426 per_pin->prev_pcm_idx = idx; /* remember the previous index */ 1417 1427 per_pin->pcm = NULL; 1418 1428 if (idx >= 0 && idx < spec->pcm_used) … … 1941 1951 per_pin->pcm = NULL; 1942 1952 per_pin->pcm_idx = -1; 1953 per_pin->prev_pcm_idx = -1; 1943 1954 per_pin->pin_nid = pin_nid; 1944 1955 per_pin->pin_nid_idx = spec->num_nids; … … 4497 4508 { 4498 4509 return patch_simple_hdmi(codec, VIAHDMI_CVT_NID, VIAHDMI_PIN_NID); 4510 } 4511 4512 static int patch_gf_hdmi(struct hda_codec *codec) 4513 { 4514 int err; 4515 4516 err = patch_generic_hdmi(codec); 4517 if (err) 4518 return err; 4519 4520 /* 4521 * Glenfly GPUs have two codecs, stream switches from one codec to 4522 * another, need to do actual clean-ups in codec_cleanup_stream 4523 */ 4524 codec->no_sticky_stream = 1; 4525 return 0; 4499 4526 } 4500 4527 … … 4587 4614 HDA_CODEC_ENTRY(0x10de009f, "GPU 9f HDMI/DP", patch_nvhdmi), 4588 4615 HDA_CODEC_ENTRY(0x10de00a0, "GPU a0 HDMI/DP", patch_nvhdmi), 4616 HDA_CODEC_ENTRY(0x10de00a3, "GPU a3 HDMI/DP", patch_nvhdmi), 4617 HDA_CODEC_ENTRY(0x10de00a4, "GPU a4 HDMI/DP", patch_nvhdmi), 4618 HDA_CODEC_ENTRY(0x10de00a5, "GPU a5 HDMI/DP", patch_nvhdmi), 4619 HDA_CODEC_ENTRY(0x10de00a6, "GPU a6 HDMI/DP", patch_nvhdmi), 4620 HDA_CODEC_ENTRY(0x10de00a7, "GPU a7 HDMI/DP", patch_nvhdmi), 4589 4621 HDA_CODEC_ENTRY(0x10de8001, "MCP73 HDMI", patch_nvhdmi_2ch), 4590 4622 HDA_CODEC_ENTRY(0x10de8067, "MCP67/68 HDMI", patch_nvhdmi_2ch), 4623 HDA_CODEC_ENTRY(0x67663d82, "Arise 82 HDMI/DP", patch_gf_hdmi), 4624 HDA_CODEC_ENTRY(0x67663d83, "Arise 83 HDMI/DP", patch_gf_hdmi), 4625 HDA_CODEC_ENTRY(0x67663d84, "Arise 84 HDMI/DP", patch_gf_hdmi), 4626 HDA_CODEC_ENTRY(0x67663d85, "Arise 85 HDMI/DP", patch_gf_hdmi), 4627 HDA_CODEC_ENTRY(0x67663d86, "Arise 86 HDMI/DP", patch_gf_hdmi), 4628 HDA_CODEC_ENTRY(0x67663d87, "Arise 87 HDMI/DP", patch_gf_hdmi), 4591 4629 HDA_CODEC_ENTRY(0x11069f80, "VX900 HDMI/DP", patch_via_hdmi), 4592 4630 HDA_CODEC_ENTRY(0x11069f81, "VX900 HDMI/DP", patch_via_hdmi), … … 4614 4652 HDA_CODEC_ENTRY(0x80862816, "Rocketlake HDMI", patch_i915_tgl_hdmi), 4615 4653 HDA_CODEC_ENTRY(0x80862818, "Raptorlake HDMI", patch_i915_tgl_hdmi), 4616 HDA_CODEC_ENTRY(0x80862819, "DG2 HDMI", patch_i915_ adlp_hdmi),4654 HDA_CODEC_ENTRY(0x80862819, "DG2 HDMI", patch_i915_tgl_hdmi), 4617 4655 HDA_CODEC_ENTRY(0x8086281a, "Jasperlake HDMI", patch_i915_icl_hdmi), 4618 4656 HDA_CODEC_ENTRY(0x8086281b, "Elkhartlake HDMI", patch_i915_icl_hdmi), -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_realtek.c
r757 r759 132 132 unsigned int has_hs_key:1; 133 133 unsigned int no_internal_mic_pin:1; 134 unsigned int en_3kpull_low:1; 134 135 135 136 /* for PLL fix */ … … 3179 3180 SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), 3180 3181 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), 3182 SND_PCI_QUIRK(0x1558, 0x3702, "Clevo X370SN[VW]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), 3181 3183 SND_PCI_QUIRK(0x1558, 0x50d3, "Clevo PC50[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), 3182 3184 SND_PCI_QUIRK(0x1558, 0x65d1, "Clevo PB51[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), … … 3186 3188 SND_PCI_QUIRK(0x1558, 0x65f1, "Clevo PC50HS", ALC1220_FIXUP_CLEVO_PB51ED_PINS), 3187 3189 SND_PCI_QUIRK(0x1558, 0x65f5, "Clevo PD50PN[NRT]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), 3190 SND_PCI_QUIRK(0x1558, 0x66a2, "Clevo PE60RNE", ALC1220_FIXUP_CLEVO_PB51ED_PINS), 3188 3191 SND_PCI_QUIRK(0x1558, 0x67d1, "Clevo PB71[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), 3189 3192 SND_PCI_QUIRK(0x1558, 0x67e1, "Clevo PB71[DE][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS), … … 3206 3209 SND_PCI_QUIRK(0x1558, 0x97e1, "Clevo P970[ER][CDFN]", ALC1220_FIXUP_CLEVO_P950), 3207 3210 SND_PCI_QUIRK(0x1558, 0x97e2, "Clevo P970RC-M", ALC1220_FIXUP_CLEVO_P950), 3211 SND_PCI_QUIRK(0x1558, 0xd502, "Clevo PD50SNE", ALC1220_FIXUP_CLEVO_PB51ED_PINS), 3208 3212 SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), 3209 3213 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), … … 4269 4273 hp_pin = 0x21; 4270 4274 4275 alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x1); /* Low power */ 4271 4276 hp_pin_sense = snd_hda_jack_detect(codec, hp_pin); 4272 4277 … … 4285 4290 * when booting with headset plugged. So skip setting it for the codec alc257 4286 4291 */ 4287 if (codec->core.vendor_id != 0x10ec0236 && 4288 codec->core.vendor_id != 0x10ec0257) 4292 if (spec->en_3kpull_low) 4289 4293 alc_update_coef_idx(codec, 0x46, 0, 3 << 12); 4290 4294 … … 5296 5300 spec->mute_led_coef.on = 0; 5297 5301 spec->mute_led_coef.off = 1 << 5; 5302 #ifdef CONFIG_SND_HDA_GENERIC_LEDS 5303 snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set); 5304 #endif 5305 } 5306 } 5307 5308 static void alc236_fixup_hp_mute_led_coefbit2(struct hda_codec *codec, 5309 const struct hda_fixup *fix, int action) 5310 { 5311 struct alc_spec *spec = codec->spec; 5312 5313 if (action == HDA_FIXUP_ACT_PRE_PROBE) { 5314 spec->mute_led_polarity = 0; 5315 spec->mute_led_coef.idx = 0x07; 5316 spec->mute_led_coef.mask = 1; 5317 spec->mute_led_coef.on = 1; 5318 spec->mute_led_coef.off = 0; 5319 #ifdef CONFIG_SND_HDA_GENERIC_LEDS 5320 snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set); 5321 #endif 5322 } 5323 } 5324 5325 static void alc245_fixup_hp_mute_led_coefbit(struct hda_codec *codec, 5326 const struct hda_fixup *fix, 5327 int action) 5328 { 5329 struct alc_spec *spec = codec->spec; 5330 5331 if (action == HDA_FIXUP_ACT_PRE_PROBE) { 5332 spec->mute_led_polarity = 0; 5333 spec->mute_led_coef.idx = 0x0b; 5334 spec->mute_led_coef.mask = 3 << 2; 5335 spec->mute_led_coef.on = 2 << 2; 5336 spec->mute_led_coef.off = 1 << 2; 5298 5337 #ifdef CONFIG_SND_HDA_GENERIC_LEDS 5299 5338 snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set); … … 7652 7691 } 7653 7692 7693 /* Forcibly assign NID 0x03 to HP while NID 0x02 to SPK */ 7694 static void alc287_fixup_bind_dacs(struct hda_codec *codec, 7695 const struct hda_fixup *fix, int action) 7696 { 7697 struct alc_spec *spec = codec->spec; 7698 static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */ 7699 static const hda_nid_t preferred_pairs[] = { 7700 0x17, 0x02, 0x21, 0x03, 0 7701 }; 7702 7703 if (action != HDA_FIXUP_ACT_PRE_PROBE) 7704 return; 7705 7706 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn); 7707 spec->gen.preferred_dacs = preferred_pairs; 7708 spec->gen.auto_mute_via_amp = 1; 7709 if (spec->gen.autocfg.speaker_pins[0] != 0x14) { 7710 snd_hda_codec_write_cache(codec, 0x14, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, 7711 0x0); /* Make sure 0x14 was disable */ 7712 } 7713 } 7714 /* Fix none verb table of Headset Mic pin */ 7715 static void alc_fixup_headset_mic(struct hda_codec *codec, 7716 const struct hda_fixup *fix, int action) 7717 { 7718 struct alc_spec *spec = codec->spec; 7719 static const struct hda_pintbl pincfgs[] = { 7720 { 0x19, 0x03a1103c }, 7721 {0} 7722 }; 7723 7724 switch (action) { 7725 case HDA_FIXUP_ACT_PRE_PROBE: 7726 snd_hda_apply_pincfgs(codec, pincfgs); 7727 alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12); 7728 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; 7729 break; 7730 } 7731 } 7732 7733 7654 7734 enum { 7655 7735 ALC269_FIXUP_GPIO2, … … 7659 7739 ALC269_FIXUP_SKU_IGNORE, 7660 7740 ALC269_FIXUP_ASUS_G73JW, 7741 ALC269_FIXUP_ASUS_N7601ZM_PINS, 7742 ALC269_FIXUP_ASUS_N7601ZM, 7661 7743 ALC269_FIXUP_LENOVO_EAPD, 7662 7744 ALC275_FIXUP_SONY_HWEQ, … … 7760 7842 ALC295_FIXUP_DISABLE_DAC3, 7761 7843 ALC285_FIXUP_SPEAKER2_TO_DAC1, 7844 ALC285_FIXUP_ASUS_SPEAKER2_TO_DAC1, 7845 ALC285_FIXUP_ASUS_HEADSET_MIC, 7846 ALC285_FIXUP_ASUS_I2C_SPEAKER2_TO_DAC1, 7847 ALC285_FIXUP_ASUS_I2C_HEADSET_MIC, 7762 7848 ALC280_FIXUP_HP_HEADSET_MIC, 7763 7849 ALC221_FIXUP_HP_FRONT_MIC, … … 7815 7901 ALC285_FIXUP_THINKPAD_X1_GEN7, 7816 7902 ALC285_FIXUP_THINKPAD_HEADSET_JACK, 7903 ALC294_FIXUP_ASUS_ALLY, 7904 ALC294_FIXUP_ASUS_ALLY_PINS, 7905 ALC294_FIXUP_ASUS_ALLY_VERBS, 7906 ALC294_FIXUP_ASUS_ALLY_SPEAKER, 7817 7907 ALC294_FIXUP_ASUS_HPE, 7818 7908 ALC294_FIXUP_ASUS_COEF_1B, … … 7828 7918 ALC285_FIXUP_HP_MUTE_LED, 7829 7919 ALC285_FIXUP_HP_SPECTRE_X360_MUTE_LED, 7920 ALC236_FIXUP_HP_MUTE_LED_COEFBIT2, 7830 7921 ALC236_FIXUP_HP_GPIO_LED, 7831 7922 ALC236_FIXUP_HP_MUTE_LED, … … 7898 7989 ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS, 7899 7990 ALC236_FIXUP_DELL_DUAL_CODECS, 7991 ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI, 7992 ALC245_FIXUP_HP_MUTE_LED_COEFBIT, 7993 ALC245_FIXUP_HP_X360_MUTE_LEDS, 7994 ALC287_FIXUP_THINKPAD_I2S_SPK, 7995 ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD, 7996 ALC2XX_FIXUP_HEADSET_MIC, 7900 7997 }; 7901 7998 … … 8137 8234 #endif 8138 8235 }, 8236 #ifdef NOT_USED 8237 [ALC269_FIXUP_ASUS_N7601ZM_PINS] = { 8238 .type = HDA_FIXUP_PINS, 8239 .v.pins = (const struct hda_pintbl[]) { 8240 { 0x19, 0x03A11050 }, 8241 { 0x1a, 0x03A11C30 }, 8242 { 0x21, 0x03211420 }, 8243 { } 8244 } 8245 }, 8246 [ALC269_FIXUP_ASUS_N7601ZM] = { 8247 .type = HDA_FIXUP_VERBS, 8248 .v.verbs = (const struct hda_verb[]) { 8249 {0x20, AC_VERB_SET_COEF_INDEX, 0x62}, 8250 {0x20, AC_VERB_SET_PROC_COEF, 0xa007}, 8251 {0x20, AC_VERB_SET_COEF_INDEX, 0x10}, 8252 {0x20, AC_VERB_SET_PROC_COEF, 0x8420}, 8253 {0x20, AC_VERB_SET_COEF_INDEX, 0x0f}, 8254 {0x20, AC_VERB_SET_PROC_COEF, 0x7774}, 8255 { } 8256 }, 8257 .chained = true, 8258 .chain_id = ALC269_FIXUP_ASUS_N7601ZM_PINS, 8259 }, 8260 #endif 8139 8261 [ALC269_FIXUP_LENOVO_EAPD] = { 8140 8262 .type = HDA_FIXUP_VERBS, … … 9006 9128 .chain_id = ALC269_FIXUP_THINKPAD_ACPI 9007 9129 }, 9130 [ALC285_FIXUP_ASUS_SPEAKER2_TO_DAC1] = { 9131 .type = HDA_FIXUP_FUNC, 9132 .v.func = alc285_fixup_speaker2_to_dac1, 9133 .chained = true, 9134 .chain_id = ALC245_FIXUP_CS35L41_SPI_2 9135 }, 9008 9136 #ifdef NOT_USED 9137 [ALC285_FIXUP_ASUS_HEADSET_MIC] = { 9138 .type = HDA_FIXUP_PINS, 9139 .v.pins = (const struct hda_pintbl[]) { 9140 { 0x19, 0x03a11050 }, 9141 { 0x1b, 0x03a11c30 }, 9142 { } 9143 }, 9144 .chained = true, 9145 .chain_id = ALC285_FIXUP_ASUS_SPEAKER2_TO_DAC1 9146 }, 9147 #endif 9148 [ALC285_FIXUP_ASUS_I2C_SPEAKER2_TO_DAC1] = { 9149 .type = HDA_FIXUP_FUNC, 9150 .v.func = alc285_fixup_speaker2_to_dac1, 9151 .chained = true, 9152 .chain_id = ALC287_FIXUP_CS35L41_I2C_2 9153 }, 9154 #ifdef NOT_USED 9155 [ALC285_FIXUP_ASUS_I2C_HEADSET_MIC] = { 9156 .type = HDA_FIXUP_PINS, 9157 .v.pins = (const struct hda_pintbl[]) { 9158 { 0x19, 0x03a11050 }, 9159 { 0x1b, 0x03a11c30 }, 9160 { } 9161 }, 9162 .chained = true, 9163 .chain_id = ALC285_FIXUP_ASUS_I2C_SPEAKER2_TO_DAC1 9164 }, 9009 9165 [ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = { 9010 9166 .type = HDA_FIXUP_PINS, … … 9411 9567 .chain_id = ALC294_FIXUP_SPK2_TO_DAC1 9412 9568 }, 9569 [ALC294_FIXUP_ASUS_ALLY] = { 9570 .type = HDA_FIXUP_FUNC, 9571 .v.func = cs35l41_fixup_i2c_two, 9572 .chained = true, 9573 .chain_id = ALC294_FIXUP_ASUS_ALLY_PINS 9574 }, 9575 #ifdef NOT_USED 9576 [ALC294_FIXUP_ASUS_ALLY_PINS] = { 9577 .type = HDA_FIXUP_PINS, 9578 .v.pins = (const struct hda_pintbl[]) { 9579 { 0x19, 0x03a11050 }, 9580 { 0x1a, 0x03a11c30 }, 9581 { 0x21, 0x03211420 }, 9582 { } 9583 }, 9584 .chained = true, 9585 .chain_id = ALC294_FIXUP_ASUS_ALLY_VERBS 9586 }, 9587 [ALC294_FIXUP_ASUS_ALLY_VERBS] = { 9588 .type = HDA_FIXUP_VERBS, 9589 .v.verbs = (const struct hda_verb[]) { 9590 { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 }, 9591 { 0x20, AC_VERB_SET_PROC_COEF, 0x5089 }, 9592 { 0x20, AC_VERB_SET_COEF_INDEX, 0x46 }, 9593 { 0x20, AC_VERB_SET_PROC_COEF, 0x0004 }, 9594 { 0x20, AC_VERB_SET_COEF_INDEX, 0x47 }, 9595 { 0x20, AC_VERB_SET_PROC_COEF, 0xa47a }, 9596 { 0x20, AC_VERB_SET_COEF_INDEX, 0x49 }, 9597 { 0x20, AC_VERB_SET_PROC_COEF, 0x0049}, 9598 { 0x20, AC_VERB_SET_COEF_INDEX, 0x4a }, 9599 { 0x20, AC_VERB_SET_PROC_COEF, 0x201b }, 9600 { 0x20, AC_VERB_SET_COEF_INDEX, 0x6b }, 9601 { 0x20, AC_VERB_SET_PROC_COEF, 0x4278}, 9602 { } 9603 }, 9604 .chained = true, 9605 .chain_id = ALC294_FIXUP_ASUS_ALLY_SPEAKER 9606 }, 9607 #endif 9608 [ALC294_FIXUP_ASUS_ALLY_SPEAKER] = { 9609 .type = HDA_FIXUP_FUNC, 9610 .v.func = alc285_fixup_speaker2_to_dac1, 9611 }, 9413 9612 [ALC285_FIXUP_THINKPAD_X1_GEN7] = { 9414 9613 .type = HDA_FIXUP_FUNC, … … 9536 9735 .type = HDA_FIXUP_FUNC, 9537 9736 .v.func = alc285_fixup_hp_spectre_x360_mute_led, 9737 }, 9738 [ALC236_FIXUP_HP_MUTE_LED_COEFBIT2] = { 9739 .type = HDA_FIXUP_FUNC, 9740 .v.func = alc236_fixup_hp_mute_led_coefbit2, 9538 9741 }, 9539 9742 [ALC236_FIXUP_HP_GPIO_LED] = { … … 10046 10249 .type = HDA_FIXUP_FUNC, 10047 10250 .v.func = cs35l41_fixup_i2c_two, 10048 .chained = true,10049 .chain_id = ALC269_FIXUP_THINKPAD_ACPI,10050 10251 }, 10051 10252 [ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED] = { … … 10187 10388 .chained = true, 10188 10389 .chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, 10390 }, 10391 [ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI] = { 10392 .type = HDA_FIXUP_FUNC, 10393 .v.func = cs35l41_fixup_i2c_two, 10394 .chained = true, 10395 .chain_id = ALC269_FIXUP_THINKPAD_ACPI, 10396 }, 10397 [ALC245_FIXUP_HP_MUTE_LED_COEFBIT] = { 10398 .type = HDA_FIXUP_FUNC, 10399 .v.func = alc245_fixup_hp_mute_led_coefbit, 10400 }, 10401 [ALC245_FIXUP_HP_X360_MUTE_LEDS] = { 10402 .type = HDA_FIXUP_FUNC, 10403 .v.func = alc245_fixup_hp_mute_led_coefbit, 10404 .chained = true, 10405 .chain_id = ALC245_FIXUP_HP_GPIO_LED 10406 }, 10407 [ALC287_FIXUP_THINKPAD_I2S_SPK] = { 10408 .type = HDA_FIXUP_FUNC, 10409 .v.func = alc287_fixup_bind_dacs, 10410 }, 10411 [ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD] = { 10412 .type = HDA_FIXUP_FUNC, 10413 .v.func = alc287_fixup_bind_dacs, 10414 .chained = true, 10415 .chain_id = ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI, 10416 }, 10417 [ALC2XX_FIXUP_HEADSET_MIC] = { 10418 .type = HDA_FIXUP_FUNC, 10419 .v.func = alc_fixup_headset_mic, 10189 10420 }, 10190 10421 }; … … 10362 10593 SND_PCI_QUIRK(0x103c, 0x8077, "HP", ALC256_FIXUP_HP_HEADSET_MIC), 10363 10594 SND_PCI_QUIRK(0x103c, 0x8158, "HP", ALC256_FIXUP_HP_HEADSET_MIC), 10364 SND_PCI_QUIRK(0x103c, 0x820d, "HP Pavilion 15", ALC2 69_FIXUP_HP_MUTE_LED_MIC3),10595 SND_PCI_QUIRK(0x103c, 0x820d, "HP Pavilion 15", ALC295_FIXUP_HP_X360), 10365 10596 SND_PCI_QUIRK(0x103c, 0x8256, "HP", ALC221_FIXUP_HP_FRONT_MIC), 10366 10597 SND_PCI_QUIRK(0x103c, 0x827e, "HP x360", ALC295_FIXUP_HP_X360), … … 10412 10643 SND_PCI_QUIRK(0x103c, 0x8811, "HP Spectre x360 15-eb1xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1), 10413 10644 SND_PCI_QUIRK(0x103c, 0x8812, "HP Spectre x360 15-eb1xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1), 10645 SND_PCI_QUIRK(0x103c, 0x881d, "HP 250 G8 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10414 10646 SND_PCI_QUIRK(0x103c, 0x8846, "HP EliteBook 850 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED), 10415 10647 SND_PCI_QUIRK(0x103c, 0x8847, "HP EliteBook x360 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED), … … 10421 10653 SND_PCI_QUIRK(0x103c, 0x8870, "HP ZBook Fury 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), 10422 10654 SND_PCI_QUIRK(0x103c, 0x8873, "HP ZBook Studio 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), 10655 SND_PCI_QUIRK(0x103c, 0x887a, "HP Laptop 15s-eq2xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10656 SND_PCI_QUIRK(0x103c, 0x888a, "HP ENVY x360 Convertible 15-eu0xxx", ALC245_FIXUP_HP_X360_MUTE_LEDS), 10423 10657 SND_PCI_QUIRK(0x103c, 0x888d, "HP ZBook Power 15.6 inch G8 Mobile Workstation PC", ALC236_FIXUP_HP_GPIO_LED), 10424 10658 SND_PCI_QUIRK(0x103c, 0x8895, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_SPEAKERS_MICMUTE_LED), … … 10427 10661 SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED), 10428 10662 SND_PCI_QUIRK(0x103c, 0x8902, "HP OMEN 16", ALC285_FIXUP_HP_MUTE_LED), 10663 SND_PCI_QUIRK(0x103c, 0x8919, "HP Pavilion Aero Laptop 13-be0xxx", ALC287_FIXUP_HP_GPIO_LED), 10429 10664 SND_PCI_QUIRK(0x103c, 0x896d, "HP ZBook Firefly 16 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10430 10665 SND_PCI_QUIRK(0x103c, 0x896e, "HP EliteBook x360 830 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), … … 10451 10686 SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10452 10687 SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10688 SND_PCI_QUIRK(0x103c, 0x8a20, "HP Laptop 15s-fq5xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10689 SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT), 10453 10690 SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST), 10454 10691 SND_PCI_QUIRK(0x103c, 0x8aa0, "HP ProBook 440 G9 (MB 8A9E)", ALC236_FIXUP_HP_GPIO_LED), … … 10456 10693 SND_PCI_QUIRK(0x103c, 0x8aa8, "HP EliteBook 640 G9 (MB 8AA6)", ALC236_FIXUP_HP_GPIO_LED), 10457 10694 SND_PCI_QUIRK(0x103c, 0x8aab, "HP EliteBook 650 G9 (MB 8AA9)", ALC236_FIXUP_HP_GPIO_LED), 10458 10695 SND_PCI_QUIRK(0x103c, 0x8abb, "HP ZBook Firefly 14 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10459 10696 SND_PCI_QUIRK(0x103c, 0x8ad1, "HP EliteBook 840 14 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10460 10697 SND_PCI_QUIRK(0x103c, 0x8ad2, "HP EliteBook 860 16 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), … … 10467 10704 SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10468 10705 SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10706 SND_PCI_QUIRK(0x103c, 0x8b63, "HP Elite Dragonfly 13.5 inch G4", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED), 10707 SND_PCI_QUIRK(0x103c, 0x8b65, "HP ProBook 455 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10708 SND_PCI_QUIRK(0x103c, 0x8b66, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10709 SND_PCI_QUIRK(0x103c, 0x8b70, "HP EliteBook 835 G10", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10710 SND_PCI_QUIRK(0x103c, 0x8b72, "HP EliteBook 845 G10", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10711 SND_PCI_QUIRK(0x103c, 0x8b74, "HP EliteBook 845W G10", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10712 SND_PCI_QUIRK(0x103c, 0x8b77, "HP ElieBook 865 G10", ALC287_FIXUP_CS35L41_I2C_2), 10469 10713 SND_PCI_QUIRK(0x103c, 0x8b7a, "HP", ALC236_FIXUP_HP_GPIO_LED), 10470 10714 SND_PCI_QUIRK(0x103c, 0x8b7d, "HP", ALC236_FIXUP_HP_GPIO_LED), … … 10473 10717 SND_PCI_QUIRK(0x103c, 0x8b8b, "HP", ALC236_FIXUP_HP_GPIO_LED), 10474 10718 SND_PCI_QUIRK(0x103c, 0x8b8d, "HP", ALC236_FIXUP_HP_GPIO_LED), 10719 SND_PCI_QUIRK(0x103c, 0x8b8f, "HP", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED), 10475 10720 SND_PCI_QUIRK(0x103c, 0x8b92, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10721 SND_PCI_QUIRK(0x103c, 0x8b96, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10722 SND_PCI_QUIRK(0x103c, 0x8b97, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10476 10723 SND_PCI_QUIRK(0x103c, 0x8bf0, "HP", ALC236_FIXUP_HP_GPIO_LED), 10724 SND_PCI_QUIRK(0x103c, 0x8c46, "HP EliteBook 830 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10725 SND_PCI_QUIRK(0x103c, 0x8c47, "HP EliteBook 840 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10726 SND_PCI_QUIRK(0x103c, 0x8c48, "HP EliteBook 860 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10727 SND_PCI_QUIRK(0x103c, 0x8c49, "HP Elite x360 830 2-in-1 G11", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10728 SND_PCI_QUIRK(0x103c, 0x8c70, "HP EliteBook 835 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10729 SND_PCI_QUIRK(0x103c, 0x8c71, "HP EliteBook 845 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10730 SND_PCI_QUIRK(0x103c, 0x8c72, "HP EliteBook 865 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10477 10731 SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), 10478 10732 SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), … … 10487 10741 SND_PCI_QUIRK(0x1043, 0x1290, "ASUS X441SA", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE), 10488 10742 SND_PCI_QUIRK(0x1043, 0x12a0, "ASUS X441UV", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE), 10743 SND_PCI_QUIRK(0x1043, 0x12a3, "Asus N7691ZM", ALC269_FIXUP_ASUS_N7601ZM), 10489 10744 SND_PCI_QUIRK(0x1043, 0x12af, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2), 10490 10745 SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), … … 10493 10748 SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC), 10494 10749 SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), 10750 SND_PCI_QUIRK(0x1043, 0x1433, "ASUS GX650P", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC), 10751 SND_PCI_QUIRK(0x1043, 0x1463, "Asus GA402X", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC), 10752 SND_PCI_QUIRK(0x1043, 0x1473, "ASUS GU604V", ALC285_FIXUP_ASUS_HEADSET_MIC), 10753 SND_PCI_QUIRK(0x1043, 0x1483, "ASUS GU603V", ALC285_FIXUP_ASUS_HEADSET_MIC), 10495 10754 SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), 10755 SND_PCI_QUIRK(0x1043, 0x1573, "ASUS GZ301V", ALC285_FIXUP_ASUS_HEADSET_MIC), 10496 10756 SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK), 10757 SND_PCI_QUIRK(0x1043, 0x1663, "ASUS GU603ZV", ALC285_FIXUP_ASUS_HEADSET_MIC), 10758 SND_PCI_QUIRK(0x1043, 0x1683, "ASUS UM3402YAR", ALC287_FIXUP_CS35L41_I2C_2), 10497 10759 SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401), 10498 10760 SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), 10499 10761 SND_PCI_QUIRK(0x1043, 0x1740, "ASUS UX430UA", ALC295_FIXUP_ASUS_DACS), 10500 10762 SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK), 10763 SND_PCI_QUIRK(0x1043, 0x17f3, "ROG Ally RC71L_RC71L", ALC294_FIXUP_ASUS_ALLY), 10501 10764 SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS), 10502 10765 SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC), … … 10512 10775 SND_PCI_QUIRK(0x1043, 0x1b11, "ASUS UX431DA", ALC294_FIXUP_ASUS_COEF_1B), 10513 10776 SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC), 10777 SND_PCI_QUIRK(0x1043, 0x1b93, "ASUS G614JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2), 10514 10778 SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), 10515 10779 SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 10780 SND_PCI_QUIRK(0x1043, 0x1c62, "ASUS GU603", ALC289_FIXUP_ASUS_GA401), 10516 10781 SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS), 10517 10782 SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC), 10783 SND_PCI_QUIRK(0x1043, 0x1d1f, "ASUS ROG Strix G17 2023 (G713PV)", ALC287_FIXUP_CS35L41_I2C_2), 10518 10784 SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401), 10519 10785 SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE), 10520 SND_PCI_QUIRK(0x1043, 0x1e02, "ASUS UX3402", ALC245_FIXUP_CS35L41_SPI_2), 10786 SND_PCI_QUIRK(0x1043, 0x1e02, "ASUS UX3402ZA", ALC245_FIXUP_CS35L41_SPI_2), 10787 SND_PCI_QUIRK(0x1043, 0x16a3, "ASUS UX3402VA", ALC245_FIXUP_CS35L41_SPI_2), 10521 10788 SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502), 10522 10789 SND_PCI_QUIRK(0x1043, 0x1e12, "ASUS UM3402", ALC287_FIXUP_CS35L41_I2C_2), … … 10529 10796 SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401), 10530 10797 SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2), 10798 SND_PCI_QUIRK(0x1043, 0x3a20, "ASUS G614JZR", ALC245_FIXUP_CS35L41_SPI_2), 10799 SND_PCI_QUIRK(0x1043, 0x3a30, "ASUS G814JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2), 10800 SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC245_FIXUP_CS35L41_SPI_2), 10801 SND_PCI_QUIRK(0x1043, 0x3a50, "ASUS G834JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2), 10802 SND_PCI_QUIRK(0x1043, 0x3a60, "ASUS G634JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2), 10531 10803 SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC), 10532 10804 SND_PCI_QUIRK(0x1043, 0x834a, "ASUS S101", ALC269_FIXUP_STEREO_DMIC), … … 10552 10824 SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), 10553 10825 SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), 10826 SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), 10554 10827 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE), 10555 10828 SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), … … 10565 10838 SND_PCI_QUIRK(0x144d, 0xc832, "Samsung Galaxy Book Flex Alpha (NP730QCJ)", ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), 10566 10839 SND_PCI_QUIRK(0x144d, 0xca03, "Samsung Galaxy Book2 Pro 360 (NP930QED)", ALC298_FIXUP_SAMSUNG_AMP), 10840 SND_PCI_QUIRK(0x144d, 0xc868, "Samsung Galaxy Book2 Pro (NP930XED)", ALC298_FIXUP_SAMSUNG_AMP), 10567 10841 SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_HEADSET_MIC), 10568 10842 SND_PCI_QUIRK(0x1462, 0xb120, "MSI Cubi MS-B120", ALC283_FIXUP_HEADSET_MIC), … … 10599 10873 SND_PCI_QUIRK(0x1558, 0x5157, "Clevo W517GU1", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10600 10874 SND_PCI_QUIRK(0x1558, 0x51a1, "Clevo NS50MU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10875 SND_PCI_QUIRK(0x1558, 0x51b1, "Clevo NS50AU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10876 SND_PCI_QUIRK(0x1558, 0x51b3, "Clevo NS70AU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10877 SND_PCI_QUIRK(0x1558, 0x5630, "Clevo NP50RNJS", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10601 10878 SND_PCI_QUIRK(0x1558, 0x70a1, "Clevo NB70T[HJK]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10602 10879 SND_PCI_QUIRK(0x1558, 0x70b3, "Clevo NK70SB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), … … 10608 10885 SND_PCI_QUIRK(0x1558, 0x7717, "Clevo NS70PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10609 10886 SND_PCI_QUIRK(0x1558, 0x7718, "Clevo L140PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10887 SND_PCI_QUIRK(0x1558, 0x7724, "Clevo L140AU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10610 10888 SND_PCI_QUIRK(0x1558, 0x8228, "Clevo NR40BU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10611 10889 SND_PCI_QUIRK(0x1558, 0x8520, "Clevo NH50D[CD]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), … … 10633 10911 SND_PCI_QUIRK(0x1558, 0xa500, "Clevo NL5[03]RU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10634 10912 SND_PCI_QUIRK(0x1558, 0xa600, "Clevo NL50NU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10913 SND_PCI_QUIRK(0x1558, 0xa650, "Clevo NP[567]0SN[CD]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10914 SND_PCI_QUIRK(0x1558, 0xa671, "Clevo NP70SN[CDE]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10635 10915 SND_PCI_QUIRK(0x1558, 0xb018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10636 10916 SND_PCI_QUIRK(0x1558, 0xb019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), … … 10678 10958 SND_PCI_QUIRK(0x17aa, 0x22c1, "Thinkpad P1 Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK), 10679 10959 SND_PCI_QUIRK(0x17aa, 0x22c2, "Thinkpad X1 Extreme Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK), 10680 SND_PCI_QUIRK(0x17aa, 0x22f1, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2), 10681 SND_PCI_QUIRK(0x17aa, 0x22f2, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2), 10682 SND_PCI_QUIRK(0x17aa, 0x22f3, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2), 10960 SND_PCI_QUIRK(0x17aa, 0x22f1, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10961 SND_PCI_QUIRK(0x17aa, 0x22f2, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10962 SND_PCI_QUIRK(0x17aa, 0x22f3, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10963 SND_PCI_QUIRK(0x17aa, 0x2316, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10964 SND_PCI_QUIRK(0x17aa, 0x2317, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10965 SND_PCI_QUIRK(0x17aa, 0x2318, "Thinkpad Z13 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10966 SND_PCI_QUIRK(0x17aa, 0x2319, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10967 SND_PCI_QUIRK(0x17aa, 0x231a, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), 10683 10968 SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), 10684 10969 SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), … … 10733 11018 SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), 10734 11019 SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), 11020 SND_PCI_QUIRK(0x17aa, 0x9e56, "Lenovo ZhaoYang CF4620Z", ALC286_FIXUP_SONY_MIC_NO_PRESENCE), 10735 11021 SND_PCI_QUIRK(0x1849, 0x1233, "ASRock NUC Box 1100", ALC233_FIXUP_NO_AUDIO_JACK), 10736 11022 SND_PCI_QUIRK(0x1849, 0xa233, "Positivo Master C6300", ALC269_FIXUP_HEADSET_MIC), … … 10761 11047 SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED), 10762 11048 SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10), 11049 SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC295_FIXUP_CHROME_BOOK), 10763 11050 SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 10764 11051 … … 11243 11530 {0x19, 0x03a11030}, 11244 11531 {0x21, 0x03211020}), 11532 SND_HDA_PIN_QUIRK(0x10ec0287, 0x17aa, "Lenovo", ALC287_FIXUP_THINKPAD_I2S_SPK, 11533 {0x17, 0x90170110}, 11534 {0x19, 0x03a11030}, 11535 {0x21, 0x03211020}), 11245 11536 SND_HDA_PIN_QUIRK(0x10ec0286, 0x1025, "Acer", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, 11246 11537 {0x12, 0x90a60130}, … … 11407 11698 {0x19, 0x40000000}, 11408 11699 {0x1a, 0x40000000}), 11700 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC, 11701 {0x19, 0x40000000}), 11409 11702 #endif 11410 11703 {0} … … 11465 11758 spec->gen.shared_mic_vref_pin = 0x18; 11466 11759 codec->power_save_node = 0; 11760 spec->en_3kpull_low = true; 11467 11761 11468 11762 #ifdef CONFIG_PM … … 11547 11841 spec->init_hook = alc256_init; 11548 11842 spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */ 11843 if (codec->core.vendor_id == 0x10ec0236 && 11844 codec->bus->pci->vendor != PCI_VENDOR_ID_AMD) 11845 spec->en_3kpull_low = false; 11549 11846 break; 11550 11847 case 0x10ec0257: … … 11553 11850 spec->init_hook = alc256_init; 11554 11851 spec->gen.mixer_nid = 0; 11852 spec->en_3kpull_low = false; 11555 11853 break; 11556 11854 case 0x10ec0215: … … 12223 12521 ALC897_FIXUP_LENOVO_HEADSET_MODE, 12224 12522 ALC897_FIXUP_HEADSET_MIC_PIN2, 12523 ALC897_FIXUP_UNIS_H3C_X500S, 12225 12524 }; 12226 12525 … … 12851 13150 .chained = true, 12852 13151 .chain_id = ALC897_FIXUP_LENOVO_HEADSET_MODE 13152 }, 13153 [ALC897_FIXUP_UNIS_H3C_X500S] = { 13154 .type = HDA_FIXUP_VERBS, 13155 .v.verbs = (const struct hda_verb[]) { 13156 { 0x14, AC_VERB_SET_EAPD_BTLENABLE, 0 }, 13157 {} 13158 }, 12853 13159 }, 12854 13160 #endif … … 12880 13186 SND_PCI_QUIRK(0x103c, 0x870c, "HP", ALC897_FIXUP_HP_HSMIC_VERB), 12881 13187 SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB), 13188 SND_PCI_QUIRK(0x103c, 0x872b, "HP", ALC897_FIXUP_HP_HSMIC_VERB), 12882 13189 SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2), 13190 SND_PCI_QUIRK(0x103c, 0x8768, "HP Slim Desktop S01", ALC671_FIXUP_HP_HEADSET_MIC2), 12883 13191 SND_PCI_QUIRK(0x103c, 0x877e, "HP 288 Pro G6", ALC671_FIXUP_HP_HEADSET_MIC2), 12884 13192 SND_PCI_QUIRK(0x103c, 0x885f, "HP 288 Pro G8", ALC671_FIXUP_HP_HEADSET_MIC2), … … 12902 13210 SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC662_FIXUP_LENOVO_MULTI_CODECS), 12903 13211 SND_PCI_QUIRK(0x17aa, 0x1057, "Lenovo P360", ALC897_FIXUP_HEADSET_MIC_PIN), 13212 SND_PCI_QUIRK(0x17aa, 0x1064, "Lenovo P3 Tower", ALC897_FIXUP_HEADSET_MIC_PIN), 12904 13213 SND_PCI_QUIRK(0x17aa, 0x32ca, "Lenovo ThinkCentre M80", ALC897_FIXUP_HEADSET_MIC_PIN), 12905 13214 SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN), 12906 13215 SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN), 12907 13216 SND_PCI_QUIRK(0x17aa, 0x32f7, "Lenovo ThinkCentre M90", ALC897_FIXUP_HEADSET_MIC_PIN), 13217 SND_PCI_QUIRK(0x17aa, 0x3321, "Lenovo ThinkCentre M70 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN), 13218 SND_PCI_QUIRK(0x17aa, 0x331b, "Lenovo ThinkCentre M90 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN), 12908 13219 SND_PCI_QUIRK(0x17aa, 0x3742, "Lenovo TianYi510Pro-14IOB", ALC897_FIXUP_HEADSET_MIC_PIN2), 12909 13220 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), … … 12914 13225 SND_PCI_QUIRK(0x1b35, 0x1234, "CZC ET26", ALC662_FIXUP_CZC_ET26), 12915 13226 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T), 13227 SND_PCI_QUIRK(0x1c6c, 0x1239, "Compaq N14JP6-V2", ALC897_FIXUP_HP_HSMIC_VERB), 12916 13228 12917 13229 #if 0 … … 13008 13320 {.id = ALC662_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"}, 13009 13321 {.id = ALC669_FIXUP_ACER_ASPIRE_ETHOS, .name = "aspire-ethos"}, 13322 {.id = ALC897_FIXUP_UNIS_H3C_X500S, .name = "unis-h3c-x500s"}, 13010 13323 {0} 13011 13324 }; -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_sigmatel.c
r754 r759 1728 1728 1729 1729 static const struct hda_pintbl ref92hd73xx_pin_configs[] = { 1730 // Port A-H 1730 1731 { 0x0a, 0x02214030 }, 1731 1732 { 0x0b, 0x02a19040 }, … … 1736 1737 { 0x10, 0x01014020 }, 1737 1738 { 0x11, 0x01014030 }, 1739 // CD in 1738 1740 { 0x12, 0x02319040 }, 1741 // Digial Mic ins 1739 1742 { 0x13, 0x90a000f0 }, 1740 1743 { 0x14, 0x90a000f0 }, 1744 // Digital outs 1741 1745 { 0x22, 0x01452050 }, 1742 1746 { 0x23, 0x01452050 }, … … 1779 1783 1780 1784 static const struct hda_pintbl intel_dg45id_pin_configs[] = { 1785 // Analog outputs 1781 1786 { 0x0a, 0x02214230 }, 1782 1787 { 0x0b, 0x02A19240 }, … … 1786 1791 { 0x0f, 0x01011212 }, 1787 1792 { 0x10, 0x01016211 }, 1793 // Digital output 1794 { 0x22, 0x01451380 }, 1795 { 0x23, 0x40f000f0 }, 1788 1796 {0} 1789 1797 }; … … 1991 1999 SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101, 1992 2000 "DFI LanParty", STAC_92HD73XX_REF), 2001 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x5001, 2002 "Intel DP45SG", STAC_92HD73XX_INTEL), 1993 2003 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x5002, 1994 2004 "Intel DG45ID", STAC_92HD73XX_INTEL), -
GPL/branches/uniaud32-exp/alsa-kernel/pci/ymfpci/ymfpci.c
r710 r759 155 155 #endif /* SUPPORT_JOYSTICK */ 156 156 157 static int snd_card_ymfpci_probe(struct pci_dev *pci,158 const struct pci_device_id *pci_id)157 static int __snd_card_ymfpci_probe(struct pci_dev *pci, 158 const struct pci_device_id *pci_id) 159 159 { 160 160 static int dev; … … 175 175 } 176 176 177 err = snd_ card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,177 err = snd_devm_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, 178 178 sizeof(*chip), &card); 179 179 if (err < 0) … … 338 338 } 339 339 340 static int snd_card_ymfpci_probe(struct pci_dev *pci, 341 const struct pci_device_id *pci_id) 342 { 343 return snd_card_free_on_error(&pci->dev, __snd_card_ymfpci_probe(pci, pci_id)); 344 } 345 340 346 static struct pci_driver ymfpci_driver = { 341 347 .name = KBUILD_MODNAME, -
GPL/branches/uniaud32-exp/alsa-kernel/pci/ymfpci/ymfpci_main.c
r713 r759 1832 1832 return -ENXIO; 1833 1833 kctl = snd_ctl_new1(&snd_ymfpci_spdif_default, chip); 1834 kctl->id.device = chip->pcm_spdif->device; 1834 1835 err = snd_ctl_add(chip->card, kctl); 1835 1836 if (err < 0) 1836 1837 return err; 1838 kctl = snd_ctl_new1(&snd_ymfpci_spdif_mask, chip); 1837 1839 kctl->id.device = chip->pcm_spdif->device; 1838 kctl = snd_ctl_new1(&snd_ymfpci_spdif_mask, chip);1839 1840 err = snd_ctl_add(chip->card, kctl); 1840 1841 if (err < 0) 1841 1842 return err; 1843 kctl = snd_ctl_new1(&snd_ymfpci_spdif_stream, chip); 1842 1844 kctl->id.device = chip->pcm_spdif->device; 1843 kctl = snd_ctl_new1(&snd_ymfpci_spdif_stream, chip);1844 1845 err = snd_ctl_add(chip->card, kctl); 1845 1846 if (err < 0) 1846 1847 return err; 1847 kctl->id.device = chip->pcm_spdif->device;1848 1848 chip->spdif_pcm_ctl = kctl; 1849 1849 … … 2170 2170 chip->work_base_addr = ptr_addr; 2171 2171 2172 snd_BUG_ON(ptr + chip->work_size!=2172 snd_BUG_ON(ptr + PAGE_ALIGN(chip->work_size) != 2173 2173 chip->work_ptr->area + chip->work_ptr->bytes); 2174 2174
Note:
See TracChangeset
for help on using the changeset viewer.