Changeset 759


Ignore:
Timestamp:
Nov 10, 2023, 8:42:28 AM (21 months ago)
Author:
Paul Smedley
Message:

Update linux code to 6.1.62

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  
    655655        unsigned int mask_bits = 0;
    656656#ifdef CONFIG_SND_JACK_INPUT_DEV
     657        struct input_dev *idev;
    657658        int i;
    658659#endif
     
    671672
    672673#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)
    676676                return;
    677         }
    678677
    679678        for (i = 0; i < ARRAY_SIZE(jack->key); i++) {
     
    681680
    682681                if (jack->type & testbit)
    683                         input_report_key(jack->input_dev, jack->key[i],
     682                        input_report_key(idev, jack->key[i],
    684683                                         status & testbit);
    685684        }
     
    689688
    690689                if (jack->type & testbit)
    691                         input_report_switch(jack->input_dev,
     690                        input_report_switch(idev,
    692691                                            jack_switch_types[i],
    693692                                            status & testbit);
    694693        }
    695694
    696         input_sync(jack->input_dev);
    697         mutex_unlock(&jack->input_dev_lock);
     695        input_sync(idev);
     696        input_put_device(idev);
    698697#endif /* CONFIG_SND_JACK_INPUT_DEV */
    699698}
  • GPL/branches/uniaud32-exp/alsa-kernel/core/oss/pcm_plugin.h

    r629 r759  
    142142void *snd_pcm_plug_buf_alloc(struct snd_pcm_substream *plug, snd_pcm_uframes_t size);
    143143void snd_pcm_plug_buf_unlock(struct snd_pcm_substream *plug, void *ptr);
     144#else
     145
     146static inline snd_pcm_sframes_t snd_pcm_plug_client_size(struct snd_pcm_substream *handle, snd_pcm_uframes_t drv_size) { return drv_size; }
     147static inline snd_pcm_sframes_t snd_pcm_plug_slave_size(struct snd_pcm_substream *handle, snd_pcm_uframes_t clt_size) { return clt_size; }
     148static inline int snd_pcm_plug_slave_format(int format, const struct snd_mask *format_mask) { return format; }
     149
     150#endif
     151
    144152snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream,
    145153                                     const char *ptr, snd_pcm_uframes_t size,
     
    151159snd_pcm_sframes_t snd_pcm_oss_readv3(struct snd_pcm_substream *substream,
    152160                                     void **bufs, snd_pcm_uframes_t frames);
    153 
    154 #else
    155 
    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 #endif
    161161
    162162#ifdef PLUGIN_DEBUG
  • GPL/branches/uniaud32-exp/alsa-kernel/core/pcm_lib.c

    r756 r759  
    21922192                if (ret < 0) {
    21932193                        runtime->control->appl_ptr = old_appl_ptr;
     2194                        if (ret == -EPIPE)
     2195                                __snd_pcm_xrun(substream);
    21942196                        return ret;
    21952197                }
  • GPL/branches/uniaud32-exp/alsa-kernel/core/pcm_memory.c

    r750 r759  
    3232MODULE_PARM_DESC(max_alloc_per_card, "Max total allocation bytes per card.");
    3333
     34static void __update_allocated_size(struct snd_card *card, ssize_t bytes)
     35{
     36        card->total_pcm_alloc_bytes += bytes;
     37}
     38
     39static 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
     46static 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
    3454static int do_alloc_pages(struct snd_card *card, int type, struct device *dev,
    3555                          int str, size_t size, struct snd_dma_buffer *dmab)
     
    3858        int err;
    3959
     60        /* check and reserve the requested size */
     61        mutex_lock(&card->memory_mutex);
    4062        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);
    4265                return -ENOMEM;
     66        }
     67        __update_allocated_size(card, size);
     68        mutex_unlock(&card->memory_mutex);
    4369
    4470        if (str == SNDRV_PCM_STREAM_PLAYBACK)
     
    4874        err = snd_dma_alloc_dir_pages(type, dev, dir, size, dmab);
    4975        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);
    5384        }
    5485        return err;
     
    5990        if (!dmab->area)
    6091                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);
    6593        snd_dma_free_pages(dmab);
    6694        dmab->area = NULL;
  • GPL/branches/uniaud32-exp/alsa-kernel/core/seq/oss/seq_oss_midi.c

    r739 r759  
    3838        struct seq_oss_devinfo *devinfo;        /* assigned OSSseq device */
    3939        snd_use_lock_t use_lock;
     40        struct mutex open_mutex;
    4041};
    4142
     
    173174        mdev->opened = 0;
    174175        snd_use_lock_init(&mdev->use_lock);
     176        mutex_init(&mdev->open_mutex);
    175177
    176178        /* copy and truncate the name of synth device */
     
    323325        struct seq_oss_midi *mdev;
    324326        struct snd_seq_port_subscribe subs;
     327        int err;
    325328
    326329        mdev = get_mididev(dp, dev);
     
    328331                return -ENODEV;
    329332
     333        mutex_lock(&mdev->open_mutex);
    330334        /* already used? */
    331335        if (mdev->opened && mdev->devinfo != dp) {
    332                 snd_use_lock_free(&mdev->use_lock);
    333                 return -EBUSY;
     336                err = -EBUSY;
     337                goto unlock;
    334338        }
    335339
     
    341345        perm &= mdev->flags;
    342346        if (perm == 0) {
    343                 snd_use_lock_free(&mdev->use_lock);
    344                 return -ENXIO;
     347                err = -ENXIO;
     348                goto unlock;
    345349        }
    346350
    347351        /* already opened? */
    348352        if ((mdev->opened & perm) == perm) {
    349                 snd_use_lock_free(&mdev->use_lock);
    350                 return 0;
     353                err = 0;
     354                goto unlock;
    351355        }
    352356
     
    373377
    374378        if (! mdev->opened) {
    375                 snd_use_lock_free(&mdev->use_lock);
    376                 return -ENXIO;
     379                err = -ENXIO;
     380                goto unlock;
    377381        }
    378382
    379383        mdev->devinfo = dp;
     384        err = 0;
     385
     386 unlock:
     387        mutex_unlock(&mdev->open_mutex);
    380388        snd_use_lock_free(&mdev->use_lock);
    381         return 0;
     389        return err;
    382390}
    383391
     
    394402        if (!mdev)
    395403                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;
    400407
    401408        memset(&subs, 0, sizeof(subs));
     
    416423        mdev->devinfo = NULL;
    417424
     425 unlock:
     426        mutex_unlock(&mdev->open_mutex);
    418427        snd_use_lock_free(&mdev->use_lock);
    419428        return 0;
  • GPL/branches/uniaud32-exp/alsa-kernel/hda/hdac_device.c

    r738 r759  
    623623#if 0 //fixme
    624624        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);
    626626                if (!ret)
    627627                        return -1;
  • GPL/branches/uniaud32-exp/alsa-kernel/hda/hdac_regmap.c

    r693 r759  
    614614void snd_hdac_regmap_sync(struct hdac_device *codec)
    615615{
    616         if (codec->regmap) {
    617                 mutex_lock(&codec->regmap_lock);
     616        mutex_lock(&codec->regmap_lock);
     617        if (codec->regmap)
    618618                regcache_sync(codec->regmap);
    619                 mutex_unlock(&codec->regmap_lock);
    620         }
     619        mutex_unlock(&codec->regmap_lock);
    621620}
    622621EXPORT_SYMBOL_GPL(snd_hdac_regmap_sync);
  • GPL/branches/uniaud32-exp/alsa-kernel/include/sound/soc-acpi.h

    r739 r759  
    171171struct snd_soc_acpi_mach {
    172172        u8 id[ACPI_ID_LEN];
     173        const char *uid;
    173174        const struct snd_soc_acpi_codecs *comp_ids;
    174175        const u32 link_mask;
  • GPL/branches/uniaud32-exp/alsa-kernel/include/sound/soc-dpcm.h

    r739 r759  
    126126                struct snd_soc_pcm_runtime *be, int stream);
    127127
     128/* can this BE perform prepare */
     129int snd_soc_dpcm_can_be_prepared(struct snd_soc_pcm_runtime *fe,
     130                                 struct snd_soc_pcm_runtime *be, int stream);
     131
    128132/* is the current PCM operation for this FE ? */
    129133int 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  
    11/* include/version.h */
    2 #define CONFIG_SND_VERSION "6.1.18"
     2#define CONFIG_SND_VERSION "6.1.62"
    33#define CONFIG_SND_DATE ""
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/ac97/ac97_codec.c

    r755 r759  
    21222122        };
    21232123
    2124         if (rac97)
    2125                 *rac97 = NULL;
    2126         if (snd_BUG_ON(!bus || !template))
     2124        if (snd_BUG_ON(!bus || !template || !rac97))
    21272125                return -EINVAL;
     2126        *rac97 = NULL;
    21282127        if (snd_BUG_ON(template->num >= 4))
    21292128                return -EINVAL;
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/cmipci.c

    r737 r759  
    27092709                if (cm->can_ac3_hw) {
    27102710                        kctl = snd_ctl_new1(&snd_cmipci_spdif_default, cm);
     2711                        kctl->id.device = pcm_spdif_device;
    27112712                        err = snd_ctl_add(card, kctl);
    27122713                        if (err < 0)
    27132714                                return err;
     2715                        kctl = snd_ctl_new1(&snd_cmipci_spdif_mask, cm);
    27142716                        kctl->id.device = pcm_spdif_device;
    2715                         kctl = snd_ctl_new1(&snd_cmipci_spdif_mask, cm);
    27162717                        err = snd_ctl_add(card, kctl);
    27172718                        if (err < 0)
    27182719                                return err;
     2720                        kctl = snd_ctl_new1(&snd_cmipci_spdif_stream, cm);
    27192721                        kctl->id.device = pcm_spdif_device;
    2720                         kctl = snd_ctl_new1(&snd_cmipci_spdif_stream, cm);
    27212722                        err = snd_ctl_add(card, kctl);
    27222723                        if (err < 0)
    27232724                                return err;
    2724                         kctl->id.device = pcm_spdif_device;
    27252725                }
    27262726                if (cm->chip_version <= 37) {
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/emu10k1/emufx.c

    r697 r759  
    15651565
    15661566        /* 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));
    15751569        snd_emu10k1_init_mono_control(&controls[nctl++], "Wave Master Playback Volume", gpr, 0);
    15761570        gpr += 2;
     
    16561650                               gpr, tmp);
    16571651                        */
    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 delayed
    1661                          */
    1662                         /* Left ADC in. 1 of 2 */
    16631652                        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                        }
    17541660                }
    17551661
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/emu10k1/emupcm.c

    r739 r759  
    12371237        struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
    12381238
    1239         emu->capture_interrupt = NULL;
     1239        emu->capture_mic_interrupt = NULL;
    12401240        emu->pcm_capture_mic_substream = NULL;
    12411241        return 0;
     
    13451345        struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
    13461346
    1347         emu->capture_interrupt = NULL;
     1347        emu->capture_efx_interrupt = NULL;
    13481348        emu->pcm_capture_efx_substream = NULL;
    13491349        return 0;
     
    17821782        int err;
    17831783
    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);
    17851785        if (err < 0)
    17861786                return err;
     
    17881788        pcm->private_data = emu;
    17891789
    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);
    17911792        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_efx_ops);
    17921793
    17931794        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");
    17951799        emu->pcm_efx = pcm;
    17961800
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_codec.c

    r757 r759  
    24762476                /* suppose a single SPDIF device */
    24772477                for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) {
     2478                        struct snd_ctl_elem_id id;
     2479
    24782480                        kctl = find_mixer_ctl(codec, dig_mix->name, 0, 0);
    24792481                        if (!kctl)
    24802482                                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);
    24822486                }
    24832487                bus->primary_dig_out_type = HDA_PCM_TYPE_HDMI;
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_generic.c

    r711 r759  
    11591159}
    11601160
    1161 static const char * const channel_name[4] = {
    1162         "Front", "Surround", "CLFE", "Side"
     1161static const char * const channel_name[] = {
     1162        "Front", "Surround", "CLFE", "Side", "Back",
    11631163};
    11641164
     
    11861186        /* multi-io channels */
    11871187        if (ch >= cfg->line_outs)
    1188                 return channel_name[ch];
     1188                goto fixed_name;
    11891189
    11901190        switch (cfg->line_out_type) {
     
    12381238                return "Line Out";
    12391239
     1240 fixed_name:
    12401241        if (ch >= ARRAY_SIZE(channel_name)) {
    12411242                snd_BUG();
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_intel.c

    r757 r759  
    250250        AZX_DRIVER_ATIHDMI,
    251251        AZX_DRIVER_ATIHDMI_NS,
     252        AZX_DRIVER_GFHDMI,
    252253        AZX_DRIVER_VIA,
    253254        AZX_DRIVER_SIS,
     
    351352#endif
    352353
    353 #define CONTROLLER_IN_GPU(pci) (((pci)->device == 0x0a0c) || \
     354#define CONTROLLER_IN_GPU(pci) (((pci)->vendor == 0x8086) &&         \
     355                                       (((pci)->device == 0x0a0c) || \
    354356                                        ((pci)->device == 0x0c0c) || \
    355357                                        ((pci)->device == 0x0d0c) || \
     
    358360                                        ((pci)->device == 0x4f90) || \
    359361                                        ((pci)->device == 0x4f91) || \
    360                                         ((pci)->device == 0x4f92))
     362                                        ((pci)->device == 0x4f92)))
    361363
    362364#define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98)
     
    371373        [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI",
    372374        [AZX_DRIVER_ATIHDMI_NS] = "HDA ATI HDMI",
     375        [AZX_DRIVER_GFHDMI] = "HDA GF HDMI",
    373376        [AZX_DRIVER_VIA] = "HDA VIA VT82xx",
    374377        [AZX_DRIVER_SIS] = "HDA SIS966",
     
    17801783
    17811784        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;
    17821791        case AZX_DRIVER_ICH:
    17831792        case AZX_DRIVER_PCH:
     
    18951904        }
    18961905#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;
    18971912
    18981913        err = pcim_iomap_regions(pci, 1 << 0, "ICH HD audio");
     
    19952010                        chip->capture_streams = ATIHDMI_NUM_CAPTURE;
    19962011                        break;
     2012                case AZX_DRIVER_GFHDMI:
    19972013                case AZX_DRIVER_GENERIC:
    19982014                default:
     
    22482264        /* https://bugzilla.kernel.org/show_bug.cgi?id=198611 */
    22492265        SND_PCI_QUIRK(0x17aa, 0x2227, "Lenovo X1 Carbon 3rd Gen", 0),
     2266        SND_PCI_QUIRK(0x17aa, 0x316e, "Lenovo ThinkCentre M70q", 0),
    22502267        /* https://bugzilla.redhat.com/show_bug.cgi?id=1689623 */
    22512268        SND_PCI_QUIRK(0x17aa, 0x367b, "Lenovo IdeaCentre B550", 0),
     
    25822599        /* Meteorlake-P */
    25832600        { PCI_DEVICE(0x8086, 0x7e28),
     2601          .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
     2602        /* Lunarlake-P */
     2603        { PCI_DEVICE(0x8086, 0xa828),
    25842604          .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
    25852605        /* Broxton-P(Apollolake) */
     
    27792799          .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS |
    27802800          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 },
    27812807        /* VIA VT8251/VT8237A */
    27822808        { PCI_DEVICE(0x1106, 0x3288), .driver_data = AZX_DRIVER_VIA },
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_ca0132.c

    r757 r759  
    13121312        SND_PCI_QUIRK(0x1458, 0xA036, "Gigabyte GA-Z170X-Gaming 7", QUIRK_R3DI),
    13131313        SND_PCI_QUIRK(0x3842, 0x1038, "EVGA X99 Classified", QUIRK_R3DI),
     1314        SND_PCI_QUIRK(0x3842, 0x104b, "EVGA X299 Dark", QUIRK_R3DI),
    13141315        SND_PCI_QUIRK(0x3842, 0x1055, "EVGA Z390 DARK", QUIRK_R3DI),
    13151316        SND_PCI_QUIRK(0x1102, 0x0013, "Recon3D", QUIRK_R3D),
     
    42384239        for (i = 0; i < TUNING_CTLS_COUNT; i++)
    42394240                if (nid == ca0132_tuning_ctls[i].nid)
    4240                         break;
    4241 
     4241                        goto found;
     4242
     4243        return -EINVAL;
     4244found:
    42424245        snd_hda_power_up(codec);
    42434246        dspio_set_param(codec, ca0132_tuning_ctls[i].mid, 0x20,
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_conexant.c

    r757 r759  
    10431043        SND_PCI_QUIRK(0x17aa, 0x390b, "Lenovo G50-80", CXT_FIXUP_STEREO_DMIC),
    10441044        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),
    10461049        SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo G50-70", CXT_FIXUP_STEREO_DMIC),
    10471050        SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC),
     
    10661069        { .id = CXT_FIXUP_HP_ZBOOK_MUTE_LED, .name = "hp-zbook-mute-led" },
    10671070        { .id = CXT_FIXUP_HP_MIC_NO_PRESENCE, .name = "hp-mic-fix" },
     1071        { .id = CXT_PINCFG_LENOVO_NOTEBOOK, .name = "lenovo-20149" },
    10681072        {0}
    10691073};
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_hdmi.c

    r757 r759  
    9494        struct hdmi_pcm *pcm; /* pointer to spec->pcm_rec[n] dynamically*/
    9595        int pcm_idx; /* which pcm is attached. -1 means no pcm is attached */
     96        int prev_pcm_idx; /* previously assigned pcm index */
    9697        int repoll_count;
    9798        bool setup; /* the stream has been set up by prepare callback */
     
    13971398        if (per_pin->pcm)
    13981399                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        }
    13991407        idx = hdmi_find_pcm_slot(spec, per_pin);
    14001408        if (idx == -EBUSY)
    14011409                return;
     1410 found:
    14021411        per_pin->pcm_idx = idx;
    14031412        per_pin->pcm = get_hdmi_pcm(spec, idx);
     
    14151424        idx = per_pin->pcm_idx;
    14161425        per_pin->pcm_idx = -1;
     1426        per_pin->prev_pcm_idx = idx; /* remember the previous index */
    14171427        per_pin->pcm = NULL;
    14181428        if (idx >= 0 && idx < spec->pcm_used)
     
    19411951                per_pin->pcm = NULL;
    19421952                per_pin->pcm_idx = -1;
     1953                per_pin->prev_pcm_idx = -1;
    19431954                per_pin->pin_nid = pin_nid;
    19441955                per_pin->pin_nid_idx = spec->num_nids;
     
    44974508{
    44984509        return patch_simple_hdmi(codec, VIAHDMI_CVT_NID, VIAHDMI_PIN_NID);
     4510}
     4511
     4512static 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;
    44994526}
    45004527
     
    45874614HDA_CODEC_ENTRY(0x10de009f, "GPU 9f HDMI/DP",   patch_nvhdmi),
    45884615HDA_CODEC_ENTRY(0x10de00a0, "GPU a0 HDMI/DP",   patch_nvhdmi),
     4616HDA_CODEC_ENTRY(0x10de00a3, "GPU a3 HDMI/DP",   patch_nvhdmi),
     4617HDA_CODEC_ENTRY(0x10de00a4, "GPU a4 HDMI/DP",   patch_nvhdmi),
     4618HDA_CODEC_ENTRY(0x10de00a5, "GPU a5 HDMI/DP",   patch_nvhdmi),
     4619HDA_CODEC_ENTRY(0x10de00a6, "GPU a6 HDMI/DP",   patch_nvhdmi),
     4620HDA_CODEC_ENTRY(0x10de00a7, "GPU a7 HDMI/DP",   patch_nvhdmi),
    45894621HDA_CODEC_ENTRY(0x10de8001, "MCP73 HDMI",       patch_nvhdmi_2ch),
    45904622HDA_CODEC_ENTRY(0x10de8067, "MCP67/68 HDMI",    patch_nvhdmi_2ch),
     4623HDA_CODEC_ENTRY(0x67663d82, "Arise 82 HDMI/DP", patch_gf_hdmi),
     4624HDA_CODEC_ENTRY(0x67663d83, "Arise 83 HDMI/DP", patch_gf_hdmi),
     4625HDA_CODEC_ENTRY(0x67663d84, "Arise 84 HDMI/DP", patch_gf_hdmi),
     4626HDA_CODEC_ENTRY(0x67663d85, "Arise 85 HDMI/DP", patch_gf_hdmi),
     4627HDA_CODEC_ENTRY(0x67663d86, "Arise 86 HDMI/DP", patch_gf_hdmi),
     4628HDA_CODEC_ENTRY(0x67663d87, "Arise 87 HDMI/DP", patch_gf_hdmi),
    45914629HDA_CODEC_ENTRY(0x11069f80, "VX900 HDMI/DP",    patch_via_hdmi),
    45924630HDA_CODEC_ENTRY(0x11069f81, "VX900 HDMI/DP",    patch_via_hdmi),
     
    46144652HDA_CODEC_ENTRY(0x80862816, "Rocketlake HDMI",  patch_i915_tgl_hdmi),
    46154653HDA_CODEC_ENTRY(0x80862818, "Raptorlake HDMI",  patch_i915_tgl_hdmi),
    4616 HDA_CODEC_ENTRY(0x80862819, "DG2 HDMI", patch_i915_adlp_hdmi),
     4654HDA_CODEC_ENTRY(0x80862819, "DG2 HDMI", patch_i915_tgl_hdmi),
    46174655HDA_CODEC_ENTRY(0x8086281a, "Jasperlake HDMI",  patch_i915_icl_hdmi),
    46184656HDA_CODEC_ENTRY(0x8086281b, "Elkhartlake HDMI", patch_i915_icl_hdmi),
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_realtek.c

    r757 r759  
    132132        unsigned int has_hs_key:1;
    133133        unsigned int no_internal_mic_pin:1;
     134        unsigned int en_3kpull_low:1;
    134135
    135136        /* for PLL fix */
     
    31793180        SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3),
    31803181        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),
    31813183        SND_PCI_QUIRK(0x1558, 0x50d3, "Clevo PC50[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    31823184        SND_PCI_QUIRK(0x1558, 0x65d1, "Clevo PB51[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     
    31863188        SND_PCI_QUIRK(0x1558, 0x65f1, "Clevo PC50HS", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    31873189        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),
    31883191        SND_PCI_QUIRK(0x1558, 0x67d1, "Clevo PB71[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    31893192        SND_PCI_QUIRK(0x1558, 0x67e1, "Clevo PB71[DE][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     
    32063209        SND_PCI_QUIRK(0x1558, 0x97e1, "Clevo P970[ER][CDFN]", ALC1220_FIXUP_CLEVO_P950),
    32073210        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),
    32083212        SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD),
    32093213        SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD),
     
    42694273                hp_pin = 0x21;
    42704274
     4275        alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x1); /* Low power */
    42714276        hp_pin_sense = snd_hda_jack_detect(codec, hp_pin);
    42724277
     
    42854290         * when booting with headset plugged. So skip setting it for the codec alc257
    42864291         */
    4287         if (codec->core.vendor_id != 0x10ec0236 &&
    4288             codec->core.vendor_id != 0x10ec0257)
     4292        if (spec->en_3kpull_low)
    42894293                alc_update_coef_idx(codec, 0x46, 0, 3 << 12);
    42904294
     
    52965300                spec->mute_led_coef.on = 0;
    52975301                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
     5308static 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
     5325static 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;
    52985337#ifdef CONFIG_SND_HDA_GENERIC_LEDS
    52995338                snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set);
     
    76527691}
    76537692
     7693/* Forcibly assign NID 0x03 to HP while NID 0x02 to SPK */
     7694static 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 */
     7715static 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
    76547734enum {
    76557735        ALC269_FIXUP_GPIO2,
     
    76597739        ALC269_FIXUP_SKU_IGNORE,
    76607740        ALC269_FIXUP_ASUS_G73JW,
     7741        ALC269_FIXUP_ASUS_N7601ZM_PINS,
     7742        ALC269_FIXUP_ASUS_N7601ZM,
    76617743        ALC269_FIXUP_LENOVO_EAPD,
    76627744        ALC275_FIXUP_SONY_HWEQ,
     
    77607842        ALC295_FIXUP_DISABLE_DAC3,
    77617843        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,
    77627848        ALC280_FIXUP_HP_HEADSET_MIC,
    77637849        ALC221_FIXUP_HP_FRONT_MIC,
     
    78157901        ALC285_FIXUP_THINKPAD_X1_GEN7,
    78167902        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,
    78177907        ALC294_FIXUP_ASUS_HPE,
    78187908        ALC294_FIXUP_ASUS_COEF_1B,
     
    78287918        ALC285_FIXUP_HP_MUTE_LED,
    78297919        ALC285_FIXUP_HP_SPECTRE_X360_MUTE_LED,
     7920        ALC236_FIXUP_HP_MUTE_LED_COEFBIT2,
    78307921        ALC236_FIXUP_HP_GPIO_LED,
    78317922        ALC236_FIXUP_HP_MUTE_LED,
     
    78987989        ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS,
    78997990        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,
    79007997};
    79017998
     
    81378234#endif
    81388235        },
     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
    81398261        [ALC269_FIXUP_LENOVO_EAPD] = {
    81408262                .type = HDA_FIXUP_VERBS,
     
    90069128                .chain_id = ALC269_FIXUP_THINKPAD_ACPI
    90079129        },
     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        },
    90089136#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        },
    90099165        [ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
    90109166                .type = HDA_FIXUP_PINS,
     
    94119567                .chain_id = ALC294_FIXUP_SPK2_TO_DAC1
    94129568        },
     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        },
    94139612        [ALC285_FIXUP_THINKPAD_X1_GEN7] = {
    94149613                .type = HDA_FIXUP_FUNC,
     
    95369735                .type = HDA_FIXUP_FUNC,
    95379736                .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,
    95389741        },
    95399742        [ALC236_FIXUP_HP_GPIO_LED] = {
     
    1004610249                .type = HDA_FIXUP_FUNC,
    1004710250                .v.func = cs35l41_fixup_i2c_two,
    10048                 .chained = true,
    10049                 .chain_id = ALC269_FIXUP_THINKPAD_ACPI,
    1005010251        },
    1005110252        [ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED] = {
     
    1018710388                .chained = true,
    1018810389                .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,
    1018910420        },
    1019010421};
     
    1036210593        SND_PCI_QUIRK(0x103c, 0x8077, "HP", ALC256_FIXUP_HP_HEADSET_MIC),
    1036310594        SND_PCI_QUIRK(0x103c, 0x8158, "HP", ALC256_FIXUP_HP_HEADSET_MIC),
    10364         SND_PCI_QUIRK(0x103c, 0x820d, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
     10595        SND_PCI_QUIRK(0x103c, 0x820d, "HP Pavilion 15", ALC295_FIXUP_HP_X360),
    1036510596        SND_PCI_QUIRK(0x103c, 0x8256, "HP", ALC221_FIXUP_HP_FRONT_MIC),
    1036610597        SND_PCI_QUIRK(0x103c, 0x827e, "HP x360", ALC295_FIXUP_HP_X360),
     
    1041210643        SND_PCI_QUIRK(0x103c, 0x8811, "HP Spectre x360 15-eb1xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1),
    1041310644        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),
    1041410646        SND_PCI_QUIRK(0x103c, 0x8846, "HP EliteBook 850 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
    1041510647        SND_PCI_QUIRK(0x103c, 0x8847, "HP EliteBook x360 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
     
    1042110653        SND_PCI_QUIRK(0x103c, 0x8870, "HP ZBook Fury 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
    1042210654        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),
    1042310657        SND_PCI_QUIRK(0x103c, 0x888d, "HP ZBook Power 15.6 inch G8 Mobile Workstation PC", ALC236_FIXUP_HP_GPIO_LED),
    1042410658        SND_PCI_QUIRK(0x103c, 0x8895, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_SPEAKERS_MICMUTE_LED),
     
    1042710661        SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED),
    1042810662        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),
    1042910664        SND_PCI_QUIRK(0x103c, 0x896d, "HP ZBook Firefly 16 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
    1043010665        SND_PCI_QUIRK(0x103c, 0x896e, "HP EliteBook x360 830 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
     
    1045110686        SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
    1045210687        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),
    1045310690        SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST),
    1045410691        SND_PCI_QUIRK(0x103c, 0x8aa0, "HP ProBook 440 G9 (MB 8A9E)", ALC236_FIXUP_HP_GPIO_LED),
     
    1045610693        SND_PCI_QUIRK(0x103c, 0x8aa8, "HP EliteBook 640 G9 (MB 8AA6)", ALC236_FIXUP_HP_GPIO_LED),
    1045710694        SND_PCI_QUIRK(0x103c, 0x8aab, "HP EliteBook 650 G9 (MB 8AA9)", ALC236_FIXUP_HP_GPIO_LED),
    10458          SND_PCI_QUIRK(0x103c, 0x8abb, "HP ZBook Firefly 14 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
     10695        SND_PCI_QUIRK(0x103c, 0x8abb, "HP ZBook Firefly 14 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
    1045910696        SND_PCI_QUIRK(0x103c, 0x8ad1, "HP EliteBook 840 14 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
    1046010697        SND_PCI_QUIRK(0x103c, 0x8ad2, "HP EliteBook 860 16 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
     
    1046710704        SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
    1046810705        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),
    1046910713        SND_PCI_QUIRK(0x103c, 0x8b7a, "HP", ALC236_FIXUP_HP_GPIO_LED),
    1047010714        SND_PCI_QUIRK(0x103c, 0x8b7d, "HP", ALC236_FIXUP_HP_GPIO_LED),
     
    1047310717        SND_PCI_QUIRK(0x103c, 0x8b8b, "HP", ALC236_FIXUP_HP_GPIO_LED),
    1047410718        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),
    1047510720        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),
    1047610723        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),
    1047710731        SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
    1047810732        SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300),
     
    1048710741        SND_PCI_QUIRK(0x1043, 0x1290, "ASUS X441SA", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE),
    1048810742        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),
    1048910744        SND_PCI_QUIRK(0x1043, 0x12af, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2),
    1049010745        SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC),
     
    1049310748        SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC),
    1049410749        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),
    1049510754        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),
    1049610756        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),
    1049710759        SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
    1049810760        SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
    1049910761        SND_PCI_QUIRK(0x1043, 0x1740, "ASUS UX430UA", ALC295_FIXUP_ASUS_DACS),
    1050010762        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),
    1050110764        SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS),
    1050210765        SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),
     
    1051210775        SND_PCI_QUIRK(0x1043, 0x1b11, "ASUS UX431DA", ALC294_FIXUP_ASUS_COEF_1B),
    1051310776        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),
    1051410778        SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
    1051510779        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),
    1051610781        SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS),
    1051710782        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),
    1051810784        SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401),
    1051910785        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),
    1052110788        SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502),
    1052210789        SND_PCI_QUIRK(0x1043, 0x1e12, "ASUS UM3402", ALC287_FIXUP_CS35L41_I2C_2),
     
    1052910796        SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401),
    1053010797        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),
    1053110803        SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC),
    1053210804        SND_PCI_QUIRK(0x1043, 0x834a, "ASUS S101", ALC269_FIXUP_STEREO_DMIC),
     
    1055210824        SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
    1055310825        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),
    1055410827        SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE),
    1055510828        SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
     
    1056510838        SND_PCI_QUIRK(0x144d, 0xc832, "Samsung Galaxy Book Flex Alpha (NP730QCJ)", ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
    1056610839        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),
    1056710841        SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_HEADSET_MIC),
    1056810842        SND_PCI_QUIRK(0x1462, 0xb120, "MSI Cubi MS-B120", ALC283_FIXUP_HEADSET_MIC),
     
    1059910873        SND_PCI_QUIRK(0x1558, 0x5157, "Clevo W517GU1", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    1060010874        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),
    1060110878        SND_PCI_QUIRK(0x1558, 0x70a1, "Clevo NB70T[HJK]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    1060210879        SND_PCI_QUIRK(0x1558, 0x70b3, "Clevo NK70SB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     
    1060810885        SND_PCI_QUIRK(0x1558, 0x7717, "Clevo NS70PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    1060910886        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),
    1061010888        SND_PCI_QUIRK(0x1558, 0x8228, "Clevo NR40BU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    1061110889        SND_PCI_QUIRK(0x1558, 0x8520, "Clevo NH50D[CD]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     
    1063310911        SND_PCI_QUIRK(0x1558, 0xa500, "Clevo NL5[03]RU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    1063410912        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),
    1063510915        SND_PCI_QUIRK(0x1558, 0xb018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    1063610916        SND_PCI_QUIRK(0x1558, 0xb019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     
    1067810958        SND_PCI_QUIRK(0x17aa, 0x22c1, "Thinkpad P1 Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
    1067910959        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),
    1068310968        SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
    1068410969        SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
     
    1073311018        SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
    1073411019        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),
    1073511021        SND_PCI_QUIRK(0x1849, 0x1233, "ASRock NUC Box 1100", ALC233_FIXUP_NO_AUDIO_JACK),
    1073611022        SND_PCI_QUIRK(0x1849, 0xa233, "Positivo Master C6300", ALC269_FIXUP_HEADSET_MIC),
     
    1076111047        SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
    1076211048        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),
    1076311050        SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
    1076411051
     
    1124311530                {0x19, 0x03a11030},
    1124411531                {0x21, 0x03211020}),
     11532        SND_HDA_PIN_QUIRK(0x10ec0287, 0x17aa, "Lenovo", ALC287_FIXUP_THINKPAD_I2S_SPK,
     11533                {0x17, 0x90170110},
     11534                {0x19, 0x03a11030},
     11535                {0x21, 0x03211020}),
    1124511536        SND_HDA_PIN_QUIRK(0x10ec0286, 0x1025, "Acer", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE,
    1124611537                {0x12, 0x90a60130},
     
    1140711698                {0x19, 0x40000000},
    1140811699                {0x1a, 0x40000000}),
     11700        SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC,
     11701                {0x19, 0x40000000}),
    1140911702#endif
    1141011703        {0}
     
    1146511758        spec->gen.shared_mic_vref_pin = 0x18;
    1146611759        codec->power_save_node = 0;
     11760        spec->en_3kpull_low = true;
    1146711761
    1146811762#ifdef CONFIG_PM
     
    1154711841                spec->init_hook = alc256_init;
    1154811842                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;
    1154911846                break;
    1155011847        case 0x10ec0257:
     
    1155311850                spec->init_hook = alc256_init;
    1155411851                spec->gen.mixer_nid = 0;
     11852                spec->en_3kpull_low = false;
    1155511853                break;
    1155611854        case 0x10ec0215:
     
    1222312521        ALC897_FIXUP_LENOVO_HEADSET_MODE,
    1222412522        ALC897_FIXUP_HEADSET_MIC_PIN2,
     12523        ALC897_FIXUP_UNIS_H3C_X500S,
    1222512524};
    1222612525
     
    1285113150                .chained = true,
    1285213151                .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                },
    1285313159        },
    1285413160#endif
     
    1288013186        SND_PCI_QUIRK(0x103c, 0x870c, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
    1288113187        SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
     13188        SND_PCI_QUIRK(0x103c, 0x872b, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
    1288213189        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),
    1288313191        SND_PCI_QUIRK(0x103c, 0x877e, "HP 288 Pro G6", ALC671_FIXUP_HP_HEADSET_MIC2),
    1288413192        SND_PCI_QUIRK(0x103c, 0x885f, "HP 288 Pro G8", ALC671_FIXUP_HP_HEADSET_MIC2),
     
    1290213210        SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC662_FIXUP_LENOVO_MULTI_CODECS),
    1290313211        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),
    1290413213        SND_PCI_QUIRK(0x17aa, 0x32ca, "Lenovo ThinkCentre M80", ALC897_FIXUP_HEADSET_MIC_PIN),
    1290513214        SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN),
    1290613215        SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN),
    1290713216        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),
    1290813219        SND_PCI_QUIRK(0x17aa, 0x3742, "Lenovo TianYi510Pro-14IOB", ALC897_FIXUP_HEADSET_MIC_PIN2),
    1290913220        SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
     
    1291413225        SND_PCI_QUIRK(0x1b35, 0x1234, "CZC ET26", ALC662_FIXUP_CZC_ET26),
    1291513226        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),
    1291613228
    1291713229#if 0
     
    1300813320        {.id = ALC662_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
    1300913321        {.id = ALC669_FIXUP_ACER_ASPIRE_ETHOS, .name = "aspire-ethos"},
     13322        {.id = ALC897_FIXUP_UNIS_H3C_X500S, .name = "unis-h3c-x500s"},
    1301013323        {0}
    1301113324};
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_sigmatel.c

    r754 r759  
    17281728
    17291729static const struct hda_pintbl ref92hd73xx_pin_configs[] = {
     1730        // Port A-H
    17301731        { 0x0a, 0x02214030 },
    17311732        { 0x0b, 0x02a19040 },
     
    17361737        { 0x10, 0x01014020 },
    17371738        { 0x11, 0x01014030 },
     1739        // CD in
    17381740        { 0x12, 0x02319040 },
     1741        // Digial Mic ins
    17391742        { 0x13, 0x90a000f0 },
    17401743        { 0x14, 0x90a000f0 },
     1744        // Digital outs
    17411745        { 0x22, 0x01452050 },
    17421746        { 0x23, 0x01452050 },
     
    17791783
    17801784static const struct hda_pintbl intel_dg45id_pin_configs[] = {
     1785        // Analog outputs
    17811786        { 0x0a, 0x02214230 },
    17821787        { 0x0b, 0x02A19240 },
     
    17861791        { 0x0f, 0x01011212 },
    17871792        { 0x10, 0x01016211 },
     1793        // Digital output
     1794        { 0x22, 0x01451380 },
     1795        { 0x23, 0x40f000f0 },
    17881796        {0}
    17891797};
     
    19911999        SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101,
    19922000                                "DFI LanParty", STAC_92HD73XX_REF),
     2001        SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x5001,
     2002                                "Intel DP45SG", STAC_92HD73XX_INTEL),
    19932003        SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x5002,
    19942004                                "Intel DG45ID", STAC_92HD73XX_INTEL),
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/ymfpci/ymfpci.c

    r710 r759  
    155155#endif /* SUPPORT_JOYSTICK */
    156156
    157 static int snd_card_ymfpci_probe(struct pci_dev *pci,
    158                                  const struct pci_device_id *pci_id)
     157static int __snd_card_ymfpci_probe(struct pci_dev *pci,
     158                                   const struct pci_device_id *pci_id)
    159159{
    160160        static int dev;
     
    175175        }
    176176
    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,
    178178                           sizeof(*chip), &card);
    179179        if (err < 0)
     
    338338}
    339339
     340static 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
    340346static struct pci_driver ymfpci_driver = {
    341347        .name = KBUILD_MODNAME,
  • GPL/branches/uniaud32-exp/alsa-kernel/pci/ymfpci/ymfpci_main.c

    r713 r759  
    18321832                return -ENXIO;
    18331833        kctl = snd_ctl_new1(&snd_ymfpci_spdif_default, chip);
     1834        kctl->id.device = chip->pcm_spdif->device;
    18341835        err = snd_ctl_add(chip->card, kctl);
    18351836        if (err < 0)
    18361837                return err;
     1838        kctl = snd_ctl_new1(&snd_ymfpci_spdif_mask, chip);
    18371839        kctl->id.device = chip->pcm_spdif->device;
    1838         kctl = snd_ctl_new1(&snd_ymfpci_spdif_mask, chip);
    18391840        err = snd_ctl_add(chip->card, kctl);
    18401841        if (err < 0)
    18411842                return err;
     1843        kctl = snd_ctl_new1(&snd_ymfpci_spdif_stream, chip);
    18421844        kctl->id.device = chip->pcm_spdif->device;
    1843         kctl = snd_ctl_new1(&snd_ymfpci_spdif_stream, chip);
    18441845        err = snd_ctl_add(chip->card, kctl);
    18451846        if (err < 0)
    18461847                return err;
    1847         kctl->id.device = chip->pcm_spdif->device;
    18481848        chip->spdif_pcm_ctl = kctl;
    18491849
     
    21702170        chip->work_base_addr = ptr_addr;
    21712171       
    2172         snd_BUG_ON(ptr + chip->work_size !=
     2172        snd_BUG_ON(ptr + PAGE_ALIGN(chip->work_size) !=
    21732173                   chip->work_ptr->area + chip->work_ptr->bytes);
    21742174
Note: See TracChangeset for help on using the changeset viewer.