Changeset 689


Ignore:
Timestamp:
Jul 24, 2021, 3:42:01 PM (4 years ago)
Author:
David Azarewicz
Message:

Merge in changes from uniaud32next branch.

Location:
GPL/trunk
Files:
32 edited
1 copied

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/core/init.c

    r679 r689  
    398398        }
    399399        card->shutdown = 1;
    400         spin_unlock(&card->files_lock);
    401400
    402401        /* replace file->f_op with special dummy operations */
    403         spin_lock(&card->files_lock);
    404402        list_for_each_entry(mfile, &card->files_list, list, struct snd_monitor_file) {
    405403                /* it's critical part, use endless loop */
  • GPL/trunk/alsa-kernel/core/seq/seq_timer.c

    r679 r689  
    298298        }
    299299        spin_lock_irq(&tmr->lock);
    300         tmr->timeri = t;
     300        if (tmr->timeri)
     301                err = -EBUSY;
     302        else
     303                tmr->timeri = t;
    301304        spin_unlock_irq(&tmr->lock);
     305        if (err < 0) {
     306                snd_timer_close(t);
     307                snd_timer_instance_free(t);
     308                return err;
     309        }
    302310        return 0;
    303311}
  • GPL/trunk/alsa-kernel/core/timer.c

    r679 r689  
    522522        if (timer->hw.flags & SNDRV_TIMER_HW_SLAVE)
    523523                return;
     524        event += 10; /* convert to SNDRV_TIMER_EVENT_MXXX */
    524525        list_for_each_entry(ts, &ti->slave_active_head, active_list, struct snd_timer_instance)
    525526                if (ts->ccallback)
    526                         ts->ccallback(ts, event + 100, &tstamp, resolution);
     527                        ts->ccallback(ts, event, &tstamp, resolution);
    527528}
    528529
  • GPL/trunk/alsa-kernel/drivers/aloop.c

    r679 r689  
    15731573                                kctl->id.device = dev;
    15741574                                kctl->id.subdevice = substr;
     1575
     1576                                /* Add the control before copying the id so that
     1577                                 * the numid field of the id is set in the copy.
     1578                                 */
     1579                                err = snd_ctl_add(card, kctl);
     1580                                if (err < 0)
     1581                                        return err;
     1582
    15751583                                switch (idx) {
    15761584                                case ACTIVE_IDX:
     
    15891597                                        break;
    15901598                                }
    1591                                 err = snd_ctl_add(card, kctl);
    1592                                 if (err < 0)
    1593                                         return err;
    15941599                        }
    15951600                }
  • GPL/trunk/alsa-kernel/hda/intel-nhlt.c

    r629 r689  
    3232        struct nhlt_dmic_array_config *cfg;
    3333        struct nhlt_vendor_dmic_array_config *cfg_vendor;
     34        struct nhlt_fmt *fmt_configs;
    3435        unsigned int dmic_geo = 0;
    35         u8 j;
     36        u16 max_ch = 0;
     37        u8 i, j;
    3638
    3739        if (!nhlt)
    3840                return 0;
    3941
    40         epnt = (struct nhlt_endpoint *)nhlt->desc;
     42        if (nhlt->header.length <= sizeof(struct acpi_table_header)) {
     43                dev_warn(dev, "Invalid DMIC description table\n");
     44                return 0;
     45        }
    4146
    42         for (j = 0; j < nhlt->endpoint_count; j++) {
    43                 if (epnt->linktype == NHLT_LINK_DMIC) {
    44                         cfg = (struct nhlt_dmic_array_config  *)
    45                                         (epnt->config.caps);
     47        for (j = 0, epnt = nhlt->desc; j < nhlt->endpoint_count; j++,
     48             epnt = (struct nhlt_endpoint *)((u8 *)epnt + epnt->length)) {
     49
     50                if (epnt->linktype != NHLT_LINK_DMIC)
     51                        continue;
     52
     53                cfg = (struct nhlt_dmic_array_config  *)(epnt->config.caps);
     54                fmt_configs = (struct nhlt_fmt *)(epnt->config.caps + epnt->config.size);
     55
     56                /* find max number of channels based on format_configuration */
     57                if (fmt_configs->fmt_count) {
     58                        dev_dbg(dev, "%s: found %d format definitions\n",
     59                                __func__, fmt_configs->fmt_count);
     60
     61                        for (i = 0; i < fmt_configs->fmt_count; i++) {
     62                                struct wav_fmt_ext *fmt_ext;
     63
     64                                fmt_ext = &fmt_configs->fmt_config[i].fmt_ext;
     65
     66                                if (fmt_ext->fmt.channels > max_ch)
     67                                        max_ch = fmt_ext->fmt.channels;
     68                        }
     69                        dev_dbg(dev, "%s: max channels found %d\n", __func__, max_ch);
     70                } else {
     71                        dev_dbg(dev, "%s: No format information found\n", __func__);
     72                }
     73
     74                if (cfg->device_config.config_type != NHLT_CONFIG_TYPE_MIC_ARRAY) {
     75                        dmic_geo = max_ch;
     76                } else {
    4677                        switch (cfg->array_type) {
    4778                        case NHLT_MIC_ARRAY_2CH_SMALL:
     
    6091                                break;
    6192                        default:
    62                                 dev_warn(dev, "undefined DMIC array_type 0x%0x\n",
    63                                          cfg->array_type);
     93                                dev_warn(dev, "%s: undefined DMIC array_type 0x%0x\n",
     94                                         __func__, cfg->array_type);
     95                        }
     96
     97                        if (dmic_geo > 0) {
     98                                dev_dbg(dev, "%s: Array with %d dmics\n", __func__, dmic_geo);
     99                        }
     100                        if (max_ch > dmic_geo) {
     101                                dev_dbg(dev, "%s: max channels %d exceed dmic number %d\n",
     102                                        __func__, max_ch, dmic_geo);
    64103                        }
    65104                }
    66                 epnt = (struct nhlt_endpoint *)((u8 *)epnt + epnt->length);
    67105        }
     106
     107        dev_dbg(dev, "%s: dmic number %d max_ch %d\n",
     108                __func__, dmic_geo, max_ch);
    68109
    69110        return dmic_geo;
  • GPL/trunk/alsa-kernel/include/sound/intel-nhlt.h

    r679 r689  
    114114
    115115enum {
     116        NHLT_CONFIG_TYPE_GENERIC = 0,
     117        NHLT_CONFIG_TYPE_MIC_ARRAY = 1
     118};
     119
     120enum {
    116121        NHLT_MIC_ARRAY_2CH_SMALL = 0xa,
    117122        NHLT_MIC_ARRAY_2CH_BIG = 0xb,
  • GPL/trunk/alsa-kernel/include/sound/version.h

    r679 r689  
    11/* include/version.h */
    2 #define CONFIG_SND_VERSION "5.10.20"
     2#define CONFIG_SND_VERSION "5.10.50"
    33#define CONFIG_SND_DATE ""
  • GPL/trunk/alsa-kernel/isa/gus/gus_main.c

    r679 r689  
    7878static void snd_gus_init_control(struct snd_gus_card *gus)
    7979{
    80         int ret;
    81 
    82         if (!gus->ace_flag) {
    83                 ret =
    84                         snd_ctl_add(gus->card,
    85                                         snd_ctl_new1(&snd_gus_joystick_control,
    86                                                 gus));
    87                 if (ret)
    88                         snd_printk(KERN_ERR "gus: snd_ctl_add failed: %d\n",
    89                                         ret);
    90         }
     80        if (!gus->ace_flag)
     81                snd_ctl_add(gus->card, snd_ctl_new1(&snd_gus_joystick_control, gus));
    9182}
    9283
  • GPL/trunk/alsa-kernel/isa/sb/emu8000.c

    r679 r689  
    10301030        memset(emu->controls, 0, sizeof(emu->controls));
    10311031        for (i = 0; i < EMU8000_NUM_CONTROLS; i++) {
    1032                 if ((err = snd_ctl_add(card, emu->controls[i] = snd_ctl_new1(mixer_defs[i], emu))) < 0)
     1032                if ((err = snd_ctl_add(card, emu->controls[i] = snd_ctl_new1(mixer_defs[i], emu))) < 0) {
     1033                        emu->controls[i] = NULL;
    10331034                        goto __error;
     1035                }
    10341036        }
    10351037        return 0;
  • GPL/trunk/alsa-kernel/isa/sb/sb16_csp.c

    r679 r689  
    10471047        spin_lock_init(&p->q_lock);
    10481048
    1049         if ((err = snd_ctl_add(card, p->qsound_switch = snd_ctl_new1(&snd_sb_qsound_switch, p))) < 0)
     1049        if ((err = snd_ctl_add(card, p->qsound_switch = snd_ctl_new1(&snd_sb_qsound_switch, p))) < 0) {
     1050                p->qsound_switch = NULL;
    10501051                goto __error;
    1051         if ((err = snd_ctl_add(card, p->qsound_space = snd_ctl_new1(&snd_sb_qsound_space, p))) < 0)
     1052        }
     1053        if ((err = snd_ctl_add(card, p->qsound_space = snd_ctl_new1(&snd_sb_qsound_space, p))) < 0) {
     1054                p->qsound_space = NULL;
    10521055                goto __error;
     1056        }
    10531057
    10541058        return 0;
  • GPL/trunk/alsa-kernel/isa/sb/sb16_main.c

    r679 r689  
    847847        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb16_capture_ops);
    848848
    849         if (chip->dma16 >= 0 && chip->dma8 != chip->dma16) {
    850                 err = snd_ctl_add(card, snd_ctl_new1(
    851                                         &snd_sb16_dma_control, chip));
    852                 if (err)
    853                         return err;
    854         } else {
     849        if (chip->dma16 >= 0 && chip->dma8 != chip->dma16)
     850                snd_ctl_add(card, snd_ctl_new1(&snd_sb16_dma_control, chip));
     851        else
    855852                pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX;
    856         }
    857853
    858854        snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
  • GPL/trunk/alsa-kernel/isa/sb/sb8.c

    r679 r689  
    9797        /* block the 0x388 port to avoid PnP conflicts */
    9898        acard->fm_res = request_region(0x388, 4, "SoundBlaster FM");
    99         if (!acard->fm_res) {
    100                 err = -EBUSY;
    101                 goto _err;
    102         }
    10399
    104100        if (port[dev] != SNDRV_AUTO_PORT) {
  • GPL/trunk/alsa-kernel/pci/hda/Makefile

    r679 r689  
    1414FILES = hda_intel.obj hda_codec.obj hda_controller.obj hda_auto_parser.obj hda_jack.obj &
    1515  hda_proc.obj hda_generic.obj hda_hwdep.obj hda_sysfs.obj hda_bind.obj &
    16   patch_analog.obj patch_cmedia.obj patch_conexant.obj patch_ca0110.obj patch_cirrus.obj &
     16  patch_analog.obj patch_cmedia.obj patch_conexant.obj patch_ca0110.obj patch_ca0132.obj patch_cirrus.obj &
    1717  patch_realtek.obj patch_si3054.obj patch_sigmatel.obj patch_via.obj
    1818
  • GPL/trunk/alsa-kernel/pci/hda/hda_bind.c

    r679 r689  
    5050        if (codec->bus->shutdown)
    5151                return;
    52 
     52#ifndef TARGET_OS2
     53        /* ignore unsol events during system suspend/resume */
     54        if (codec->core.dev.power.power_state.event != PM_EVENT_ON)
     55                return;
     56#endif
    5357        if (codec->patch_ops.unsol_event)
    5458                codec->patch_ops.unsol_event(codec, ev);
  • GPL/trunk/alsa-kernel/pci/hda/hda_codec.c

    r679 r689  
    29892989static int hda_codec_pm_prepare(struct device *dev)
    29902990{
     2991        dev->power.power_state = PMSG_SUSPEND;
    29912992        return pm_runtime_suspended(dev);
    29922993}
     
    29962997        struct hda_codec *codec = dev_to_hda_codec(dev);
    29972998
     2999#ifndef TARGET_OS2
     3000        /* If no other pm-functions are called between prepare() and complete() */
     3001        if (dev->power.power_state.event == PM_EVENT_SUSPEND)
     3002                dev->power.power_state = PMSG_RESUME;
     3003#endif
    29983004        if (pm_runtime_suspended(dev) && (codec->jackpoll_interval ||
    29993005            hda_codec_need_resume(codec) || codec->forced_resume))
  • GPL/trunk/alsa-kernel/pci/hda/hda_controller.c

    r679 r689  
    630630                                     178000000);
    631631
    632         /* by some reason, the playback stream stalls on PulseAudio with
    633          * tsched=1 when a capture stream triggers.  Until we figure out the
    634          * real cause, disable tsched mode by telling the PCM info flag.
    635          */
    636         if (chip->driver_caps & AZX_DCAPS_AMD_WORKAROUND)
    637                 runtime->hw.info |= SNDRV_PCM_INFO_BATCH;
    638 
    639632        if (chip->align_buffer_size)
    640633                /* constrain buffer sizes to be multiple of 128
  • GPL/trunk/alsa-kernel/pci/hda/hda_generic.c

    r679 r689  
    12061206                return "Headphone";
    12071207        case AUTO_PIN_LINE_OUT:
    1208                 /* This deals with the case where we have two DACs and
    1209                  * one LO, one HP and one Speaker */
    1210                 if (!ch && cfg->speaker_outs && cfg->hp_outs) {
    1211                         bool hp_lo_shared = !path_has_mixer(codec, spec->hp_paths[0], ctl_type);
    1212                         bool spk_lo_shared = !path_has_mixer(codec, spec->speaker_paths[0], ctl_type);
     1208                /* This deals with the case where one HP or one Speaker or
     1209                 * one HP + one Speaker need to share the DAC with LO
     1210                 */
     1211                if (!ch) {
     1212                        bool hp_lo_shared = false, spk_lo_shared = false;
     1213
     1214                        if (cfg->speaker_outs)
     1215                                spk_lo_shared = !path_has_mixer(codec,
     1216                                                                spec->speaker_paths[0], ctl_type);
     1217                        if (cfg->hp_outs)
     1218                                hp_lo_shared = !path_has_mixer(codec, spec->hp_paths[0], ctl_type);
    12131219                        if (hp_lo_shared && spk_lo_shared)
    12141220                                return spec->vmaster_mute.hook ? "PCM" : "Master";
     
    40774083        spec->micmute_led.led_mode = MICMUTE_LED_FOLLOW_MUTE;
    40784084        spec->micmute_led.capture = 0;
    4079         spec->micmute_led.led_value = 0;
     4085        spec->micmute_led.led_value = -1;
    40804086        spec->micmute_led.old_hook = spec->cap_sync_hook;
    40814087        spec->cap_sync_hook = update_micmute_led;
  • GPL/trunk/alsa-kernel/pci/hda/hda_intel.c

    r679 r689  
    10511051        struct azx *chip;
    10521052
     1053        if (!azx_is_pm_ready(card))
     1054                return 0;
     1055
    10531056        chip = card->private_data;
    10541057        chip->pm_prepared = 1;
     1058        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
     1059
     1060        flush_work(&azx_bus(chip)->unsol_work);
    10551061
    10561062        /* HDA controller always requires different WAKEEN for runtime suspend
     
    10651071        struct azx *chip;
    10661072
     1073        if (!azx_is_pm_ready(card))
     1074                return;
     1075
    10671076        chip = card->private_data;
     1077        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
    10681078        chip->pm_prepared = 0;
    10691079}
  • GPL/trunk/alsa-kernel/pci/hda/patch_ca0132.c

    r679 r689  
    3030#ifdef TARGET_OS2
    3131#define KBUILD_MODNAME "patch_ca0132"
     32#pragma disable_message (302)
    3233#endif
    3334
     
    12801281        SND_PCI_QUIRK(0x1102, 0x0018, "Recon3D", QUIRK_R3D),
    12811282        SND_PCI_QUIRK(0x1102, 0x0051, "Sound Blaster AE-5", QUIRK_AE5),
     1283        SND_PCI_QUIRK(0x1102, 0x0191, "Sound Blaster AE-5 Plus", QUIRK_AE5),
    12821284        SND_PCI_QUIRK(0x1102, 0x0081, "Sound Blaster AE-7", QUIRK_AE7),
    12831285        {0}
     
    35013503
    35023504        do {
     3505          #ifndef TARGET_OS2
    35033506                if (dspload_is_loaded(codec)) {
    35043507                        codec_info(codec, "ca0132 DSP downloaded and running\n");
    35053508                        return true;
    35063509                }
     3510                #endif
    35073511                msleep(20);
    35083512        } while (time_before(jiffies, timeout));
     
    65286532        char namestr[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    65296533        int type = dir ? HDA_INPUT : HDA_OUTPUT;
     6534
     6535#ifndef TARGET_OS2
    65306536        struct snd_kcontrol_new knew =
    65316537                HDA_CODEC_VOLUME_MONO(namestr, nid, 1, 0, type);
     6538#else
     6539        struct snd_kcontrol_new knew = {
     6540                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6541                .index = 0,  \
     6542                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6543                .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
     6544                            SNDRV_CTL_ELEM_ACCESS_TLV_READ |
     6545                            SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
     6546                .info = snd_hda_mixer_amp_volume_info, \
     6547                .get = snd_hda_mixer_amp_volume_get,
     6548                .put = snd_hda_mixer_amp_volume_put,
     6549                .tlv = { .c = snd_hda_mixer_amp_tlv },         
     6550
     6551        };
     6552        knew.name = namestr;
     6553        knew.private_value = ((nid) | ((1)<<16) | ((type)<<18) | ((0)<<19) | ((0)<<23)) | 0;
     6554#endif
    65326555        sprintf(namestr, "FX: %s %s Volume", pfx, dirstr[dir]);
    65336556
     
    65636586        char namestr[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    65646587        int type = dir ? HDA_INPUT : HDA_OUTPUT;
     6588#ifndef TARGET_OS2
    65656589        struct snd_kcontrol_new knew =
    65666590                CA0132_CODEC_MUTE_MONO(namestr, nid, 1, type);
     6591#else
     6592        struct snd_kcontrol_new knew =
     6593        { .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6594          .subdevice = HDA_SUBDEV_AMP_FLAG,
     6595          .info = snd_hda_mixer_amp_switch_info,
     6596          .get = ca0132_switch_get,
     6597          .put = ca0132_switch_put,
     6598        };
     6599        knew.name = namestr;
     6600        knew.private_value = HDA_COMPOSE_AMP_VAL(nid, 1, 0, type);
     6601#endif
    65676602        /* If using alt_controls, add FX: prefix. But, don't add FX:
    65686603         * prefix to OutFX or InFX enable controls.
     
    65786613static int add_voicefx(struct hda_codec *codec)
    65796614{
     6615#ifndef TARGET_OS2
    65806616        struct snd_kcontrol_new knew =
    65816617                HDA_CODEC_MUTE_MONO(ca0132_voicefx.name,
    65826618                                    VOICEFX, 1, 0, HDA_INPUT);
     6619#else
     6620        struct snd_kcontrol_new knew =
     6621        {
     6622                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6623                .index = 0,
     6624                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6625                .info = snd_hda_mixer_amp_switch_info,
     6626                .get = snd_hda_mixer_amp_switch_get,
     6627                .put = snd_hda_mixer_amp_switch_put,
     6628        };
     6629        knew.name = ca0132_voicefx.name;
     6630        knew.private_value = HDA_COMPOSE_AMP_VAL(VOICEFX, 1, 0, HDA_INPUT);
     6631
     6632#endif
    65836633        knew.info = ca0132_voicefx_info;
    65846634        knew.get = ca0132_voicefx_get;
     
    65906640static int add_ca0132_alt_eq_presets(struct hda_codec *codec)
    65916641{
     6642#ifndef TARGET_OS2
    65926643        struct snd_kcontrol_new knew =
    65936644                HDA_CODEC_MUTE_MONO(ca0132_alt_eq_enum.name,
    65946645                                    EQ_PRESET_ENUM, 1, 0, HDA_OUTPUT);
     6646#else
     6647        struct snd_kcontrol_new knew =
     6648        {
     6649                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6650                .index = 0,
     6651                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6652                .info = snd_hda_mixer_amp_switch_info,
     6653                .get = snd_hda_mixer_amp_switch_get,
     6654                .put = snd_hda_mixer_amp_switch_put,
     6655        };
     6656        knew.name = ca0132_alt_eq_enum.name;
     6657        knew.private_value = HDA_COMPOSE_AMP_VAL(EQ_PRESET_ENUM, 1, 0, HDA_OUTPUT);
     6658#endif
    65956659        knew.info = ca0132_alt_eq_preset_info;
    65966660        knew.get = ca0132_alt_eq_preset_get;
     
    66856749{
    66866750        const char *namestr = "Bass Redirection Crossover";
     6751#ifndef TARGET_OS2
    66876752        struct snd_kcontrol_new knew =
    66886753                HDA_CODEC_VOLUME_MONO(namestr, BASS_REDIRECTION_XOVER, 1, 0,
    66896754                                HDA_OUTPUT);
    6690 
     6755#else
     6756        struct snd_kcontrol_new knew = {
     6757                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6758                .index = 0,  \
     6759                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6760                .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
     6761                            SNDRV_CTL_ELEM_ACCESS_TLV_READ |
     6762                            SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
     6763                .info = snd_hda_mixer_amp_volume_info, \
     6764                .get = snd_hda_mixer_amp_volume_get,
     6765                .put = snd_hda_mixer_amp_volume_put,
     6766                .tlv = { .c = snd_hda_mixer_amp_tlv },         
     6767        };
     6768        knew.name = namestr;
     6769        knew.private_value = HDA_COMPOSE_AMP_VAL(BASS_REDIRECTION_XOVER, 1, 0, HDA_OUTPUT) | 0;
     6770#endif
    66916771        knew.tlv.c = NULL;
    66926772        knew.info = ca0132_alt_xbass_xover_slider_info;
     
    67016781{
    67026782        const char *namestr = "Bass Redirection";
     6783#ifndef TARGET_OS2
    67036784        struct snd_kcontrol_new knew =
    67046785                CA0132_CODEC_MUTE_MONO(namestr, BASS_REDIRECTION, 1,
    67056786                                HDA_OUTPUT);
     6787#else
     6788        struct snd_kcontrol_new knew =
     6789        { .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6790          .subdevice = HDA_SUBDEV_AMP_FLAG,
     6791          .info = snd_hda_mixer_amp_switch_info,
     6792          .get = ca0132_switch_get,
     6793          .put = ca0132_switch_put,
     6794        };
     6795        knew.name = namestr;
     6796        knew.private_value = HDA_COMPOSE_AMP_VAL(BASS_REDIRECTION, 1, 0, HDA_OUTPUT);
     6797#endif
    67066798
    67076799        return snd_hda_ctl_add(codec, BASS_REDIRECTION,
     
    89119003{
    89129004        /* put any chip cleanup stuffs here. */
    8913 
     9005  #ifndef TARGET_OS2
    89149006        if (dspload_is_loaded(codec))
    89159007                dsp_reset(codec);
     9008  #endif
    89169009}
    89179010
  • GPL/trunk/alsa-kernel/pci/hda/patch_conexant.c

    r679 r689  
    156156#endif /* NOT_USED */
    157157
     158static void cxt_init_gpio_led(struct hda_codec *codec)
     159{
     160        struct conexant_spec *spec = codec->spec;
     161        unsigned int mask = spec->gpio_mute_led_mask | spec->gpio_mic_led_mask;
     162
     163        if (mask) {
     164                snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_MASK,
     165                                    mask);
     166                snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DIRECTION,
     167                                    mask);
     168                snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA,
     169                                    spec->gpio_led);
     170        }
     171}
     172
    158173static int cx_auto_init(struct hda_codec *codec)
    159174{
     
    163178                cx_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, true);
    164179
     180        cxt_init_gpio_led(codec);
    165181        snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT);
    166182
     
    222238        CXT_FIXUP_HP_GATE_MIC,
    223239        CXT_FIXUP_MUTE_LED_GPIO,
     240        CXT_FIXUP_HP_ZBOOK_MUTE_LED,
    224241        CXT_FIXUP_HEADSET_MIC,
    225242        CXT_FIXUP_HP_MIC_NO_PRESENCE,
     
    665682#endif /* NOT_USED */
    666683
     684static void cxt_setup_mute_led(struct hda_codec *codec,
     685                               unsigned int mute, unsigned int mic_mute)
     686{
     687        struct conexant_spec *spec = codec->spec;
     688
     689        spec->gpio_led = 0;
     690        spec->mute_led_polarity = 0;
     691#ifdef NOT_USED
     692        if (mute) {
     693                snd_hda_gen_add_mute_led_cdev(codec, cxt_gpio_mute_update);
     694                spec->gpio_mute_led_mask = mute;
     695        }
     696        if (mic_mute) {
     697                snd_hda_gen_add_micmute_led_cdev(codec, cxt_gpio_micmute_update);
     698                spec->gpio_mic_led_mask = mic_mute;
     699        }
     700#endif /* NOT_USED */
     701}
     702
    667703static void cxt_fixup_mute_led_gpio(struct hda_codec *codec,
    668704                                const struct hda_fixup *fix, int action)
    669705{
    670         struct conexant_spec *spec = codec->spec;
    671         static const struct hda_verb gpio_init[] = {
    672                 { 0x01, AC_VERB_SET_GPIO_MASK, 0x03 },
    673                 { 0x01, AC_VERB_SET_GPIO_DIRECTION, 0x03 },
    674                 {0}
    675         };
    676 
    677         if (action == HDA_FIXUP_ACT_PRE_PROBE) {
    678 #ifdef CONFIG_SND_HDA_GENERIC_LEDS
    679                 snd_hda_gen_add_mute_led_cdev(codec, cxt_gpio_mute_update);
    680 #endif
    681                 spec->gpio_led = 0;
    682                 spec->mute_led_polarity = 0;
    683                 spec->gpio_mute_led_mask = 0x01;
    684                 spec->gpio_mic_led_mask = 0x02;
    685 #ifdef CONFIG_SND_HDA_GENERIC_LEDS
    686                 snd_hda_gen_add_micmute_led_cdev(codec, cxt_gpio_micmute_update);
    687 #endif
    688         }
    689         snd_hda_add_verbs(codec, gpio_init);
    690         if (spec->gpio_led)
    691                 snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA,
    692                                     spec->gpio_led);
    693 }
    694 
     706        if (action == HDA_FIXUP_ACT_PRE_PROBE)
     707                cxt_setup_mute_led(codec, 0x01, 0x02);
     708}
     709
     710static void cxt_fixup_hp_zbook_mute_led(struct hda_codec *codec,
     711                                        const struct hda_fixup *fix, int action)
     712{
     713        if (action == HDA_FIXUP_ACT_PRE_PROBE)
     714                cxt_setup_mute_led(codec, 0x10, 0x20);
     715}
    695716
    696717/* ThinkPad X200 & co with cxt5051 */
     
    899920                .v.func = cxt_fixup_mute_led_gpio,
    900921        },
     922        [CXT_FIXUP_HP_ZBOOK_MUTE_LED] = {
     923                .type = HDA_FIXUP_FUNC,
     924                .v.func = cxt_fixup_hp_zbook_mute_led,
     925        },
    901926        [CXT_FIXUP_HEADSET_MIC] = {
    902927                .type = HDA_FIXUP_FUNC,
     
    966991        SND_PCI_QUIRK(0x103c, 0x807C, "HP EliteBook 820 G3", CXT_FIXUP_HP_DOCK),
    967992        SND_PCI_QUIRK(0x103c, 0x80FD, "HP ProBook 640 G2", CXT_FIXUP_HP_DOCK),
     993        SND_PCI_QUIRK(0x103c, 0x8115, "HP Z1 Gen3", CXT_FIXUP_HP_GATE_MIC),
     994        SND_PCI_QUIRK(0x103c, 0x814f, "HP ZBook 15u G3", CXT_FIXUP_MUTE_LED_GPIO),
     995        SND_PCI_QUIRK(0x103c, 0x8174, "HP Spectre x360", CXT_FIXUP_HP_SPECTRE),
     996        SND_PCI_QUIRK(0x103c, 0x822e, "HP ProBook 440 G4", CXT_FIXUP_MUTE_LED_GPIO),
    968997        SND_PCI_QUIRK(0x103c, 0x828c, "HP EliteBook 840 G4", CXT_FIXUP_HP_DOCK),
     998        SND_PCI_QUIRK(0x103c, 0x8299, "HP 800 G3 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE),
     999        SND_PCI_QUIRK(0x103c, 0x829a, "HP 800 G3 DM", CXT_FIXUP_HP_MIC_NO_PRESENCE),
     1000        SND_PCI_QUIRK(0x103c, 0x836e, "HP ProBook 455 G5", CXT_FIXUP_MUTE_LED_GPIO),
     1001        SND_PCI_QUIRK(0x103c, 0x837f, "HP ProBook 470 G5", CXT_FIXUP_MUTE_LED_GPIO),
    9691002        SND_PCI_QUIRK(0x103c, 0x83b2, "HP EliteBook 840 G5", CXT_FIXUP_HP_DOCK),
    9701003        SND_PCI_QUIRK(0x103c, 0x83b3, "HP EliteBook 830 G5", CXT_FIXUP_HP_DOCK),
    9711004        SND_PCI_QUIRK(0x103c, 0x83d3, "HP ProBook 640 G4", CXT_FIXUP_HP_DOCK),
    972         SND_PCI_QUIRK(0x103c, 0x8174, "HP Spectre x360", CXT_FIXUP_HP_SPECTRE),
    973         SND_PCI_QUIRK(0x103c, 0x8115, "HP Z1 Gen3", CXT_FIXUP_HP_GATE_MIC),
    974         SND_PCI_QUIRK(0x103c, 0x814f, "HP ZBook 15u G3", CXT_FIXUP_MUTE_LED_GPIO),
    975         SND_PCI_QUIRK(0x103c, 0x822e, "HP ProBook 440 G4", CXT_FIXUP_MUTE_LED_GPIO),
    976         SND_PCI_QUIRK(0x103c, 0x836e, "HP ProBook 455 G5", CXT_FIXUP_MUTE_LED_GPIO),
    977         SND_PCI_QUIRK(0x103c, 0x837f, "HP ProBook 470 G5", CXT_FIXUP_MUTE_LED_GPIO),
    978         SND_PCI_QUIRK(0x103c, 0x8299, "HP 800 G3 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE),
    979         SND_PCI_QUIRK(0x103c, 0x829a, "HP 800 G3 DM", CXT_FIXUP_HP_MIC_NO_PRESENCE),
    9801005        SND_PCI_QUIRK(0x103c, 0x8402, "HP ProBook 645 G4", CXT_FIXUP_MUTE_LED_GPIO),
     1006        SND_PCI_QUIRK(0x103c, 0x8427, "HP ZBook Studio G5", CXT_FIXUP_HP_ZBOOK_MUTE_LED),
     1007        SND_PCI_QUIRK(0x103c, 0x844f, "HP ZBook Studio G5", CXT_FIXUP_HP_ZBOOK_MUTE_LED),
    9811008        SND_PCI_QUIRK(0x103c, 0x8455, "HP Z2 G4", CXT_FIXUP_HP_MIC_NO_PRESENCE),
    9821009        SND_PCI_QUIRK(0x103c, 0x8456, "HP Z2 G4 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE),
     
    10181045        { .id = CXT_FIXUP_HP_DOCK, .name = "hp-dock" },
    10191046        { .id = CXT_FIXUP_MUTE_LED_GPIO, .name = "mute-led-gpio" },
     1047        { .id = CXT_FIXUP_HP_ZBOOK_MUTE_LED, .name = "hp-zbook-mute-led" },
    10201048        { .id = CXT_FIXUP_HP_MIC_NO_PRESENCE, .name = "hp-mic-fix" },
    10211049        {0}
  • GPL/trunk/alsa-kernel/pci/hda/patch_hdmi.c

    r679 r689  
    24832483
    24842484#ifdef CONFIG_PM
     2485static int generic_hdmi_suspend(struct hda_codec *codec)
     2486{
     2487        struct hdmi_spec *spec = codec->spec;
     2488        int pin_idx;
     2489
     2490        for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
     2491                struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
     2492                cancel_delayed_work_sync(&per_pin->work);
     2493        }
     2494        return 0;
     2495}
     2496
    24852497static int generic_hdmi_resume(struct hda_codec *codec)
    24862498{
     
    25062518        .unsol_event            = hdmi_unsol_event,
    25072519#ifdef CONFIG_PM
     2520        .suspend                = generic_hdmi_suspend,
    25082521        .resume                 = generic_hdmi_resume,
    25092522#endif
     
    26482661         * the state will be updated at resume
    26492662         */
    2650         if (snd_power_get_state(codec->card) != SNDRV_CTL_POWER_D0)
     2663        if (codec->core.dev.power.power_state.event == PM_EVENT_SUSPEND)
    26512664                return;
    26522665        /* ditto during suspend/resume process itself */
     
    28342847         * the state will be updated at resume
    28352848         */
    2836         if (snd_power_get_state(codec->card) != SNDRV_CTL_POWER_D0)
     2849        if (codec->core.dev.power.power_state.event == PM_EVENT_SUSPEND)
    28372850                return;
    28382851        /* ditto during suspend/resume process itself */
  • GPL/trunk/alsa-kernel/pci/hda/patch_realtek.c

    r679 r689  
    393393                fallthrough;
    394394        case 0x10ec0215:
     395        case 0x10ec0230:
    395396        case 0x10ec0233:
    396397        case 0x10ec0235:
     
    403404        case 0x10ec0283:
    404405        case 0x10ec0286:
    405         case 0x10ec0287:
    406406        case 0x10ec0288:
    407407        case 0x10ec0285:
     
    413413        case 0x10ec0275:
    414414                alc_update_coef_idx(codec, 0xe, 0, 1<<0);
     415                break;
     416        case 0x10ec0287:
     417                alc_update_coef_idx(codec, 0x10, 1<<9, 0);
     418                alc_write_coef_idx(codec, 0x8, 0x4ab7);
    415419                break;
    416420        case 0x10ec0293:
     
    30193023        SND_PCI_QUIRK(0x1025, 0x0146, "Acer Aspire 6935G",
    30203024                      ALC882_FIXUP_ACER_ASPIRE_8930G),
     3025        SND_PCI_QUIRK(0x1025, 0x0142, "Acer Aspire 7730G",
     3026                      ALC882_FIXUP_ACER_ASPIRE_4930G),
     3027        SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", ALC882_FIXUP_PB_M5210),
    30213028        SND_PCI_QUIRK(0x1025, 0x015e, "Acer Aspire 6930G",
    30223029                      ALC882_FIXUP_ACER_ASPIRE_4930G),
    30233030        SND_PCI_QUIRK(0x1025, 0x0166, "Acer Aspire 6530G",
    30243031                      ALC882_FIXUP_ACER_ASPIRE_4930G),
    3025         SND_PCI_QUIRK(0x1025, 0x0142, "Acer Aspire 7730G",
    3026                       ALC882_FIXUP_ACER_ASPIRE_4930G),
    3027         SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", ALC882_FIXUP_PB_M5210),
    30283032        SND_PCI_QUIRK(0x1025, 0x021e, "Acer Aspire 5739G",
    30293033                      ALC882_FIXUP_ACER_ASPIRE_4930G),
     
    30383042        SND_PCI_QUIRK(0x1043, 0x84bc, "ASUS ET2700", ALC887_FIXUP_ASUS_BASS),
    30393043        SND_PCI_QUIRK(0x1043, 0x8691, "ASUS ROG Ranger VIII", ALC882_FIXUP_GPIO3),
     3044        SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP),
     3045        SND_PCI_QUIRK(0x104d, 0x9044, "Sony VAIO AiO", ALC882_FIXUP_NO_PRIMARY_HP),
    30403046        SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT),
    30413047        SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP),
    30423048        SND_PCI_QUIRK(0x104d, 0x9060, "Sony Vaio VPCL14M1R", ALC882_FIXUP_NO_PRIMARY_HP),
    3043         SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP),
    3044         SND_PCI_QUIRK(0x104d, 0x9044, "Sony VAIO AiO", ALC882_FIXUP_NO_PRIMARY_HP),
    30453049
    30463050        /* All Apple entries are in codec SSIDs */
     
    30813085        SND_PCI_QUIRK(0x1462, 0x1293, "MSI-GP65", ALC1220_FIXUP_CLEVO_P950),
    30823086        SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD),
     3087        SND_PCI_QUIRK(0x1462, 0xcc34, "MSI Godlike X570", ALC1220_FIXUP_GB_DUAL_CODECS),
    30833088        SND_PCI_QUIRK(0x1462, 0xda57, "MSI Z270-Gaming", ALC1220_FIXUP_GB_DUAL_CODECS),
    30843089        SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3),
    30853090        SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX),
     3091        SND_PCI_QUIRK(0x1558, 0x50d3, "Clevo PC50[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3092        SND_PCI_QUIRK(0x1558, 0x65d1, "Clevo PB51[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3093        SND_PCI_QUIRK(0x1558, 0x65d2, "Clevo PB51R[CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3094        SND_PCI_QUIRK(0x1558, 0x65e1, "Clevo PB51[ED][DF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3095        SND_PCI_QUIRK(0x1558, 0x65e5, "Clevo PC50D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3096        SND_PCI_QUIRK(0x1558, 0x67d1, "Clevo PB71[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3097        SND_PCI_QUIRK(0x1558, 0x67e1, "Clevo PB71[DE][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3098        SND_PCI_QUIRK(0x1558, 0x67e5, "Clevo PC70D[PRS](?:-D|-G)?", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3099        SND_PCI_QUIRK(0x1558, 0x70d1, "Clevo PC70[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
     3100        SND_PCI_QUIRK(0x1558, 0x7714, "Clevo X170", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    30863101        SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950),
    30873102        SND_PCI_QUIRK(0x1558, 0x9506, "Clevo P955HQ", ALC1220_FIXUP_CLEVO_P950),
    3088         SND_PCI_QUIRK(0x1558, 0x950A, "Clevo P955H[PR]", ALC1220_FIXUP_CLEVO_P950),
     3103        SND_PCI_QUIRK(0x1558, 0x950a, "Clevo P955H[PR]", ALC1220_FIXUP_CLEVO_P950),
    30893104        SND_PCI_QUIRK(0x1558, 0x95e1, "Clevo P95xER", ALC1220_FIXUP_CLEVO_P950),
    30903105        SND_PCI_QUIRK(0x1558, 0x95e2, "Clevo P950ER", ALC1220_FIXUP_CLEVO_P950),
     
    30963111        SND_PCI_QUIRK(0x1558, 0x97e1, "Clevo P970[ER][CDFN]", ALC1220_FIXUP_CLEVO_P950),
    30973112        SND_PCI_QUIRK(0x1558, 0x97e2, "Clevo P970RC-M", ALC1220_FIXUP_CLEVO_P950),
    3098         SND_PCI_QUIRK(0x1558, 0x50d3, "Clevo PC50[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    3099         SND_PCI_QUIRK(0x1558, 0x65d1, "Clevo PB51[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    3100         SND_PCI_QUIRK(0x1558, 0x65d2, "Clevo PB51R[CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    3101         SND_PCI_QUIRK(0x1558, 0x65e1, "Clevo PB51[ED][DF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    3102         SND_PCI_QUIRK(0x1558, 0x67d1, "Clevo PB71[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    3103         SND_PCI_QUIRK(0x1558, 0x67e1, "Clevo PB71[DE][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    3104         SND_PCI_QUIRK(0x1558, 0x70d1, "Clevo PC70[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    3105         SND_PCI_QUIRK(0x1558, 0x7714, "Clevo X170", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
    31063113        SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD),
    31073114        SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD),
     
    31463153};
    31473154
     3155static const struct snd_hda_pin_quirk alc882_pin_fixup_tbl[] = {
     3156#ifndef TARGET_OS2
     3157        SND_HDA_PIN_QUIRK(0x10ec1220, 0x1043, "ASUS", ALC1220_FIXUP_CLEVO_P950,
     3158                {0x14, 0x01014010},
     3159                {0x15, 0x01011012},
     3160                {0x16, 0x01016011},
     3161                {0x18, 0x01a19040},
     3162                {0x19, 0x02a19050},
     3163                {0x1a, 0x0181304f},
     3164                {0x1b, 0x0221401f},
     3165                {0x1e, 0x01456130}),
     3166        SND_HDA_PIN_QUIRK(0x10ec1220, 0x1462, "MS-7C35", ALC1220_FIXUP_CLEVO_P950,
     3167                {0x14, 0x01015010},
     3168                {0x15, 0x01011012},
     3169                {0x16, 0x01011011},
     3170                {0x18, 0x01a11040},
     3171                {0x19, 0x02a19050},
     3172                {0x1a, 0x0181104f},
     3173                {0x1b, 0x0221401f},
     3174                {0x1e, 0x01451130}),
     3175#endif
     3176        {0}
     3177};
     3178
    31483179/*
    31493180 * BIOS auto configuration
     
    31873218        snd_hda_pick_fixup(codec, alc882_fixup_models, alc882_fixup_tbl,
    31883219                       alc882_fixups);
     3220        snd_hda_pick_pin_fixup(codec, alc882_pin_fixup_tbl, alc882_fixups, true);
    31893221        snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
    31903222
     
    37663798                alc_update_coef_idx(codec, 0x44, 0x0045 << 8, 0x0);
    37673799                break;
     3800        case 0x10ec0230:
    37683801        case 0x10ec0236:
    37693802        case 0x10ec0256:
     
    37933826                alc_update_coef_idx(codec, 0x44, 0x007f << 8, 0x0045 << 8);
    37943827                break;
     3828        case 0x10ec0230:
    37953829        case 0x10ec0236:
    37963830        case 0x10ec0256:
     
    45714605}
    45724606
     4607/* Fix the speaker amp after resume, etc */
     4608static void alc269vb_fixup_aspire_e1_coef(struct hda_codec *codec,
     4609                                          const struct hda_fixup *fix,
     4610                                          int action)
     4611{
     4612        if (action == HDA_FIXUP_ACT_INIT)
     4613                alc_update_coef_idx(codec, 0x0d, 0x6000, 0x6000);
     4614}
     4615
    45734616static void alc269_fixup_pcm_44k(struct hda_codec *codec,
    45744617                                 const struct hda_fixup *fix, int action)
     
    48814924}
    48824925
     4926static void alc236_fixup_hp_gpio_led(struct hda_codec *codec,
     4927                                const struct hda_fixup *fix, int action)
     4928{
     4929        alc_fixup_hp_gpio_led(codec, action, 0x02, 0x01);
     4930}
     4931
    48834932static void alc269_fixup_hp_gpio_led(struct hda_codec *codec,
    48844933                                const struct hda_fixup *fix, int action)
     
    49775026
    49785027#ifdef NOT_USED
     5028/* toggle GPIO2 at each time stream is started; we use PREPARE state instead */
     5029static void alc274_hp_envy_pcm_hook(struct hda_pcm_stream *hinfo,
     5030                                    struct hda_codec *codec,
     5031                                    struct snd_pcm_substream *substream,
     5032                                    int action)
     5033{
     5034        switch (action) {
     5035        case HDA_GEN_PCM_ACT_PREPARE:
     5036                alc_update_gpio_data(codec, 0x04, true);
     5037                break;
     5038        case HDA_GEN_PCM_ACT_CLEANUP:
     5039                alc_update_gpio_data(codec, 0x04, false);
     5040                break;
     5041        }
     5042}
     5043
     5044static void alc274_fixup_hp_envy_gpio(struct hda_codec *codec,
     5045                                      const struct hda_fixup *fix,
     5046                                      int action)
     5047{
     5048        struct alc_spec *spec = codec->spec;
     5049
     5050        if (action == HDA_FIXUP_ACT_PROBE) {
     5051                spec->gpio_mask |= 0x04;
     5052                spec->gpio_dir |= 0x04;
     5053                spec->gen.pcm_playback_hook = alc274_hp_envy_pcm_hook;
     5054        }
     5055}
     5056
    49795057static void alc_update_coef_led(struct hda_codec *codec,
    49805058                                struct alc_coef_led *led,
     
    50955173        alc236_fixup_hp_mute_led_coefbit(codec, fix, action);
    50965174        alc236_fixup_hp_coef_micmute_led(codec, fix, action);
     5175}
     5176
     5177static void alc236_fixup_hp_micmute_led_vref(struct hda_codec *codec,
     5178                                const struct hda_fixup *fix, int action)
     5179{
     5180        struct alc_spec *spec = codec->spec;
     5181
     5182        if (action == HDA_FIXUP_ACT_PRE_PROBE) {
     5183                spec->cap_mute_led_nid = 0x1a;
     5184#ifdef CONFIG_SND_HDA_GENERIC_LEDS
     5185                snd_hda_gen_add_micmute_led_cdev(codec, vref_micmute_led_set);
     5186#endif
     5187                codec->power_filter = led_power_filter;
     5188        }
     5189}
     5190
     5191static void alc236_fixup_hp_mute_led_micmute_vref(struct hda_codec *codec,
     5192                                const struct hda_fixup *fix, int action)
     5193{
     5194        alc236_fixup_hp_mute_led_coefbit(codec, fix, action);
     5195        alc236_fixup_hp_micmute_led_vref(codec, fix, action);
    50975196}
    50985197
     
    53275426                alc_process_coef_fw(codec, coef0255);
    53285427                break;
     5428        case 0x10ec0230:
    53295429        case 0x10ec0236:
    53305430        case 0x10ec0256:
     
    54415541                snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50);
    54425542                break;
     5543        case 0x10ec0230:
    54435544        case 0x10ec0236:
    54445545        case 0x10ec0256:
     
    55905691                alc_process_coef_fw(codec, coef0255);
    55915692                break;
     5693        case 0x10ec0230:
    55925694        case 0x10ec0236:
    55935695        case 0x10ec0256:
     
    56885790                alc_process_coef_fw(codec, coef0255);
    56895791                break;
     5792        case 0x10ec0230:
    56905793        case 0x10ec0236:
    56915794        case 0x10ec0256:
     
    58015904                alc_process_coef_fw(codec, coef0255);
    58025905                break;
     5906        case 0x10ec0230:
    58035907        case 0x10ec0236:
    58045908        case 0x10ec0256:
     
    59016005                is_ctia = (val & 0x0070) == 0x0070;
    59026006                break;
     6007        case 0x10ec0230:
    59036008        case 0x10ec0236:
    59046009        case 0x10ec0256:
     
    59316036        case 0x10ec0294:
    59326037                alc_process_coef_fw(codec, coef0274);
    5933                 msleep(80);
     6038                msleep(850);
    59346039                val = alc_read_coef_idx(codec, 0x46);
    59356040                is_ctia = (val & 0x00f0) == 0x00f0;
     
    61156220{
    61166221        snd_hda_gen_hp_automute(codec, jack);
     6222        alc_update_headset_mode(codec);
    61176223}
    61186224
     
    61956301                alc_process_coef_fw(codec, alc255fw);
    61966302                break;
     6303        case 0x10ec0230:
    61976304        case 0x10ec0236:
    61986305        case 0x10ec0256:
     
    63346441}
    63356442
     6443static void alc295_fixup_asus_dacs(struct hda_codec *codec,
     6444                                   const struct hda_fixup *fix, int action)
     6445{
     6446        static const hda_nid_t preferred_pairs[] = {
     6447                0x17, 0x02, 0x21, 0x03, 0
     6448        };
     6449        struct alc_spec *spec = codec->spec;
     6450
     6451        if (action == HDA_FIXUP_ACT_PRE_PROBE)
     6452                spec->gen.preferred_dacs = preferred_pairs;
     6453}
     6454
    63366455static void alc_shutup_dell_xps13(struct hda_codec *codec)
    63376456{
     
    67846903                alc_update_coef_idx(codec, 0x4a, 0x8000, 0 << 15);
    67856904                break;
     6905        case 0x10ec0230:
    67866906        case 0x10ec0235:
    67876907        case 0x10ec0236:
     
    68516971}
    68526972
     6973static void alc294_gu502_toggle_output(struct hda_codec *codec,
     6974                                       struct hda_jack_callback *cb)
     6975{
     6976        /* Windows sets 0x10 to 0x8420 for Node 0x20 which is
     6977         * responsible from changes between speakers and headphones
     6978         */
     6979        if (snd_hda_jack_detect_state(codec, 0x21) == HDA_JACK_PRESENT)
     6980                alc_write_coef_idx(codec, 0x10, 0x8420);
     6981        else
     6982                alc_write_coef_idx(codec, 0x10, 0x0a20);
     6983}
     6984
     6985static void alc294_fixup_gu502_hp(struct hda_codec *codec,
     6986                                  const struct hda_fixup *fix, int action)
     6987{
     6988        if (!is_jack_detectable(codec, 0x21))
     6989                return;
     6990
     6991        switch (action) {
     6992        case HDA_FIXUP_ACT_PRE_PROBE:
     6993                snd_hda_jack_detect_enable_callback(codec, 0x21,
     6994                                alc294_gu502_toggle_output);
     6995                break;
     6996        case HDA_FIXUP_ACT_INIT:
     6997                alc294_gu502_toggle_output(codec, NULL);
     6998                break;
     6999        }
     7000}
     7001
    68537002static void  alc285_fixup_hp_gpio_amp_init(struct hda_codec *codec,
    68547003                              const struct hda_fixup *fix, int action)
     
    68877036        }
    68887037}
     7038
     7039static void alc285_fixup_hp_spectre_x360(struct hda_codec *codec,
     7040                                          const struct hda_fixup *fix, int action)
     7041{
     7042        static const hda_nid_t conn[] = { 0x02 };
     7043        static const struct hda_pintbl pincfgs[] = {
     7044                { 0x14, 0x90170110 },  /* rear speaker */
     7045                {0}
     7046        };
     7047
     7048        switch (action) {
     7049        case HDA_FIXUP_ACT_PRE_PROBE:
     7050                snd_hda_apply_pincfgs(codec, pincfgs);
     7051                /* force front speaker to DAC1 */
     7052                snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
     7053                break;
     7054        }
     7055}
    68897056#endif /* NOT_USED */
    68907057
     
    69017068/* for alc295_fixup_hp_top_speakers */
    69027069#include "hp_x360_helper.c"
     7070
     7071/* for alc285_fixup_ideapad_s740_coef() */
     7072#include "ideapad_s740_helper.c"
    69037073
    69047074enum {
     
    69807150        ALC255_FIXUP_MIC_MUTE_LED,
    69817151        ALC282_FIXUP_ASPIRE_V5_PINS,
     7152        ALC269VB_FIXUP_ASPIRE_E1_COEF,
    69827153        ALC280_FIXUP_HP_GPIO4,
    69837154        ALC286_FIXUP_HP_GPIO_LED,
     
    70657236        ALC294_FIXUP_ASUS_GX502_PINS,
    70667237        ALC294_FIXUP_ASUS_GX502_VERBS,
     7238        ALC294_FIXUP_ASUS_GU502_HP,
     7239        ALC294_FIXUP_ASUS_GU502_PINS,
     7240        ALC294_FIXUP_ASUS_GU502_VERBS,
    70677241        ALC285_FIXUP_HP_GPIO_LED,
    70687242        ALC285_FIXUP_HP_MUTE_LED,
     7243        ALC236_FIXUP_HP_GPIO_LED,
    70697244        ALC236_FIXUP_HP_MUTE_LED,
     7245        ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF,
    70707246        ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET,
    70717247        ALC295_FIXUP_ASUS_MIC_NO_PRESENCE,
     
    70837259        ALC269_FIXUP_LEMOTE_A190X,
    70847260        ALC256_FIXUP_INTEL_NUC8_RUGGED,
     7261        ALC233_FIXUP_INTEL_NUC8_DMIC,
     7262        ALC233_FIXUP_INTEL_NUC8_BOOST,
     7263        ALC256_FIXUP_INTEL_NUC10,
    70857264        ALC255_FIXUP_XIAOMI_HEADSET_MIC,
    70867265        ALC274_FIXUP_HP_MIC,
    70877266        ALC274_FIXUP_HP_HEADSET_MIC,
     7267        ALC274_FIXUP_HP_ENVY_GPIO,
    70887268        ALC256_FIXUP_ASUS_HPE,
    70897269        ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK,
     
    70937273        ALC282_FIXUP_ACER_DISABLE_LINEOUT,
    70947274        ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST,
     7275        ALC256_FIXUP_ACER_HEADSET_MIC,
     7276        ALC285_FIXUP_IDEAPAD_S740_COEF,
     7277        ALC295_FIXUP_ASUS_DACS,
     7278        ALC295_FIXUP_HP_OMEN,
     7279        ALC285_FIXUP_HP_SPECTRE_X360,
     7280        ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP,
     7281        ALC623_FIXUP_LENOVO_THINKSTATION_P340,
     7282        ALC255_FIXUP_ACER_HEADPHONE_AND_MIC,
    70957283};
    70967284
     
    79408128        },
    79418129#endif
     8130        [ALC269VB_FIXUP_ASPIRE_E1_COEF] = {
     8131                .type = HDA_FIXUP_FUNC,
     8132                .v.func = alc269vb_fixup_aspire_e1_coef,
     8133        },
    79428134        [ALC280_FIXUP_HP_GPIO4] = {
    79438135                .type = HDA_FIXUP_FUNC,
     
    80898281                .v.func = alc233_fixup_lenovo_line2_mic_hotkey,
    80908282        },
     8283        [ALC233_FIXUP_INTEL_NUC8_DMIC] = {
     8284                .type = HDA_FIXUP_FUNC,
     8285                .v.func = alc_fixup_inv_dmic,
     8286                .chained = true,
     8287                .chain_id = ALC233_FIXUP_INTEL_NUC8_BOOST,
     8288        },
     8289        [ALC233_FIXUP_INTEL_NUC8_BOOST] = {
     8290                .type = HDA_FIXUP_FUNC,
     8291                .v.func = alc269_fixup_limit_int_mic_boost
     8292        },
    80918293        [ALC255_FIXUP_DELL_SPK_NOISE] = {
    80928294                .type = HDA_FIXUP_FUNC,
     
    82558457                        {0}
    82568458                },
     8459                .chained = true,
     8460                .chain_id = ALC289_FIXUP_ASUS_GA401,
    82578461        },
    82588462        [ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE] = {
     
    86018805                .v.func = alc294_fixup_gx502_hp,
    86028806        },
     8807        [ALC294_FIXUP_ASUS_GU502_PINS] = {
     8808                .type = HDA_FIXUP_PINS,
     8809                .v.pins = (const struct hda_pintbl[]) {
     8810                        { 0x19, 0x01a11050 }, /* rear HP mic */
     8811                        { 0x1a, 0x01a11830 }, /* rear external mic */
     8812                        { 0x21, 0x012110f0 }, /* rear HP out */
     8813                        { }
     8814                },
     8815                .chained = true,
     8816                .chain_id = ALC294_FIXUP_ASUS_GU502_VERBS
     8817        },
     8818        [ALC294_FIXUP_ASUS_GU502_VERBS] = {
     8819                .type = HDA_FIXUP_VERBS,
     8820                .v.verbs = (const struct hda_verb[]) {
     8821                        /* set 0x15 to HP-OUT ctrl */
     8822                        { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0 },
     8823                        /* unmute the 0x15 amp */
     8824                        { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000 },
     8825                        /* set 0x1b to HP-OUT */
     8826                        { 0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
     8827                        { }
     8828                },
     8829                .chained = true,
     8830                .chain_id = ALC294_FIXUP_ASUS_GU502_HP
     8831        },
     8832        [ALC294_FIXUP_ASUS_GU502_HP] = {
     8833                .type = HDA_FIXUP_FUNC,
     8834                .v.func = alc294_fixup_gu502_hp,
     8835        },
    86038836        [ALC294_FIXUP_ASUS_COEF_1B] = {
    86048837                .type = HDA_FIXUP_VERBS,
     
    86218854                .v.func = alc285_fixup_hp_mute_led,
    86228855        },
     8856        [ALC236_FIXUP_HP_GPIO_LED] = {
     8857                .type = HDA_FIXUP_FUNC,
     8858                .v.func = alc236_fixup_hp_gpio_led,
     8859        },
    86238860        [ALC236_FIXUP_HP_MUTE_LED] = {
    86248861                .type = HDA_FIXUP_FUNC,
    86258862                .v.func = alc236_fixup_hp_mute_led,
     8863        },
     8864        [ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF] = {
     8865                .type = HDA_FIXUP_FUNC,
     8866                .v.func = alc236_fixup_hp_mute_led_micmute_vref,
    86268867        },
    86278868#ifdef TARGET_OS2xxx
     
    87919032                .chain_id = ALC269_FIXUP_HEADSET_MODE
    87929033        },
     9034        [ALC256_FIXUP_INTEL_NUC10] = {
     9035                .type = HDA_FIXUP_PINS,
     9036                .v.pins = (const struct hda_pintbl[]) {
     9037                        { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
     9038                        { }
     9039                },
     9040                .chained = true,
     9041                .chain_id = ALC269_FIXUP_HEADSET_MODE
     9042        },
    87939043        [ALC255_FIXUP_XIAOMI_HEADSET_MIC] = {
    87949044                .type = HDA_FIXUP_VERBS,
     
    88149064                .chained = true,
    88159065                .chain_id = ALC274_FIXUP_HP_MIC
     9066        },
     9067        [ALC274_FIXUP_HP_ENVY_GPIO] = {
     9068                .type = HDA_FIXUP_FUNC,
     9069                .v.func = alc274_fixup_hp_envy_gpio,
    88169070        },
    88179071        [ALC256_FIXUP_ASUS_HPE] = {
     
    88579111        },
    88589112#endif
     9113        [ALC285_FIXUP_IDEAPAD_S740_COEF] = {
     9114                .type = HDA_FIXUP_FUNC,
     9115                .v.func = alc285_fixup_ideapad_s740_coef,
     9116                .chained = true,
     9117                .chain_id = ALC269_FIXUP_THINKPAD_ACPI,
     9118        },
     9119        [ALC295_FIXUP_ASUS_DACS] = {
     9120                .type = HDA_FIXUP_FUNC,
     9121                .v.func = alc295_fixup_asus_dacs,
     9122        },
     9123#ifdef TARGET_OS2xxx
     9124        [ALC295_FIXUP_HP_OMEN] = {
     9125                .type = HDA_FIXUP_PINS,
     9126                .v.pins = (const struct hda_pintbl[]) {
     9127                        { 0x12, 0xb7a60130 },
     9128                        { 0x13, 0x40000000 },
     9129                        { 0x14, 0x411111f0 },
     9130                        { 0x16, 0x411111f0 },
     9131                        { 0x17, 0x90170110 },
     9132                        { 0x18, 0x411111f0 },
     9133                        { 0x19, 0x02a11030 },
     9134                        { 0x1a, 0x411111f0 },
     9135                        { 0x1b, 0x04a19030 },
     9136                        { 0x1d, 0x40600001 },
     9137                        { 0x1e, 0x411111f0 },
     9138                        { 0x21, 0x03211020 },
     9139                        {0}
     9140                },
     9141                .chained = true,
     9142                .chain_id = ALC269_FIXUP_HP_LINE1_MIC1_LED,
     9143        },
     9144        [ALC285_FIXUP_HP_SPECTRE_X360] = {
     9145                .type = HDA_FIXUP_FUNC,
     9146                .v.func = alc285_fixup_hp_spectre_x360,
     9147        },
     9148#endif
     9149        [ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP] = {
     9150                .type = HDA_FIXUP_FUNC,
     9151                .v.func = alc285_fixup_ideapad_s740_coef,
     9152                .chained = true,
     9153                .chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
     9154        },
     9155        [ALC623_FIXUP_LENOVO_THINKSTATION_P340] = {
     9156                .type = HDA_FIXUP_FUNC,
     9157                .v.func = alc_fixup_no_shutup,
     9158                .chained = true,
     9159                .chain_id = ALC283_FIXUP_HEADSET_MIC,
     9160        },
     9161#ifdef TARGET_OS2xxx
     9162        [ALC255_FIXUP_ACER_HEADPHONE_AND_MIC] = {
     9163                .type = HDA_FIXUP_PINS,
     9164                .v.pins = (const struct hda_pintbl[]) {
     9165                        { 0x21, 0x03211030 }, /* Change the Headphone location to Left */
     9166                        { }
     9167                },
     9168                .chained = true,
     9169                .chain_id = ALC255_FIXUP_XIAOMI_HEADSET_MIC
     9170        },
     9171#endif
    88599172};
    88609173
     
    88659178        SND_PCI_QUIRK(0x1025, 0x047c, "Acer AC700", ALC269_FIXUP_ACER_AC700),
    88669179        SND_PCI_QUIRK(0x1025, 0x072d, "Acer Aspire V5-571G", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
    8867         SND_PCI_QUIRK(0x1025, 0x080d, "Acer Aspire V5-122P", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
    88689180        SND_PCI_QUIRK(0x1025, 0x0740, "Acer AO725", ALC271_FIXUP_HP_GATE_MIC_JACK),
    88699181        SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK),
     
    88719183        SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572),
    88729184        SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS),
     9185        SND_PCI_QUIRK(0x1025, 0x080d, "Acer Aspire V5-122P", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
     9186        SND_PCI_QUIRK(0x1025, 0x0840, "Acer Aspire E1", ALC269VB_FIXUP_ASPIRE_E1_COEF),
    88739187        SND_PCI_QUIRK(0x1025, 0x101c, "Acer Veriton N2510G", ALC269_FIXUP_LIFEBOOK),
    88749188        SND_PCI_QUIRK(0x1025, 0x102b, "Acer Aspire C24-860", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE),
     
    88839197        SND_PCI_QUIRK(0x1025, 0x1247, "Acer vCopperbox", ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS),
    88849198        SND_PCI_QUIRK(0x1025, 0x1248, "Acer Veriton N4660G", ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE),
     9199        SND_PCI_QUIRK(0x1025, 0x1269, "Acer SWIFT SF314-54", ALC256_FIXUP_ACER_HEADSET_MIC),
    88859200        SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
    88869201        SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
    88879202        SND_PCI_QUIRK(0x1025, 0x1291, "Acer Veriton Z4660G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
     9203        SND_PCI_QUIRK(0x1025, 0x129c, "Acer SWIFT SF314-55", ALC256_FIXUP_ACER_HEADSET_MIC),
    88889204        SND_PCI_QUIRK(0x1025, 0x1308, "Acer Aspire Z24-890", ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
    88899205        SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21", ALC233_FIXUP_ACER_HEADSET_MIC),
    88909206        SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T", ALC255_FIXUP_ACER_HEADSET_MIC),
    88919207        SND_PCI_QUIRK(0x1025, 0x1430, "Acer TravelMate B311R-31", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
     9208        SND_PCI_QUIRK(0x1025, 0x1466, "Acer Aspire A515-56", ALC255_FIXUP_ACER_HEADPHONE_AND_MIC),
    88929209        SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
    88939210        SND_PCI_QUIRK(0x1028, 0x054b, "Dell XPS one 2710", ALC275_FIXUP_DELL_XPS),
     
    89239240        SND_PCI_QUIRK(0x1028, 0x075c, "Dell XPS 27 7760", ALC298_FIXUP_SPK_VOLUME),
    89249241        SND_PCI_QUIRK(0x1028, 0x075d, "Dell AIO", ALC298_FIXUP_SPK_VOLUME),
     9242        SND_PCI_QUIRK(0x1028, 0x0798, "Dell Inspiron 17 7000 Gaming", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
    89259243        SND_PCI_QUIRK(0x1028, 0x07b0, "Dell Precision 7520", ALC295_FIXUP_DISABLE_DAC3),
    8926         SND_PCI_QUIRK(0x1028, 0x0798, "Dell Inspiron 17 7000 Gaming", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
    89279244        SND_PCI_QUIRK(0x1028, 0x080c, "Dell WYSE", ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE),
    89289245        SND_PCI_QUIRK(0x1028, 0x084b, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
     
    89349251        SND_PCI_QUIRK(0x1028, 0x08ae, "Dell WYSE NB", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE),
    89359252        SND_PCI_QUIRK(0x1028, 0x0935, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
     9253        SND_PCI_QUIRK(0x1028, 0x097d, "Dell Precision", ALC289_FIXUP_DUAL_SPK),
    89369254        SND_PCI_QUIRK(0x1028, 0x097e, "Dell Precision", ALC289_FIXUP_DUAL_SPK),
    8937         SND_PCI_QUIRK(0x1028, 0x097d, "Dell Precision", ALC289_FIXUP_DUAL_SPK),
    89389255        SND_PCI_QUIRK(0x1028, 0x098d, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE),
    89399256        SND_PCI_QUIRK(0x1028, 0x09bf, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE),
     
    89469263        SND_PCI_QUIRK(0x103c, 0x18e6, "HP", ALC269_FIXUP_HP_GPIO_LED),
    89479264        SND_PCI_QUIRK(0x103c, 0x218b, "HP", ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED),
    8948         SND_PCI_QUIRK(0x103c, 0x225f, "HP", ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY),
    8949         /* ALC282 */
    89509265        SND_PCI_QUIRK(0x103c, 0x21f9, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89519266        SND_PCI_QUIRK(0x103c, 0x2210, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89529267        SND_PCI_QUIRK(0x103c, 0x2214, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9268        SND_PCI_QUIRK(0x103c, 0x221b, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
     9269        SND_PCI_QUIRK(0x103c, 0x221c, "HP EliteBook 755 G2", ALC280_FIXUP_HP_HEADSET_MIC),
     9270        SND_PCI_QUIRK(0x103c, 0x2221, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
     9271        SND_PCI_QUIRK(0x103c, 0x2225, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    89539272        SND_PCI_QUIRK(0x103c, 0x2236, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
    89549273        SND_PCI_QUIRK(0x103c, 0x2237, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
     
    89569275        SND_PCI_QUIRK(0x103c, 0x2239, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
    89579276        SND_PCI_QUIRK(0x103c, 0x224b, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED),
    8958         SND_PCI_QUIRK(0x103c, 0x2268, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8959         SND_PCI_QUIRK(0x103c, 0x226a, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8960         SND_PCI_QUIRK(0x103c, 0x226b, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8961         SND_PCI_QUIRK(0x103c, 0x226e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8962         SND_PCI_QUIRK(0x103c, 0x2271, "HP", ALC286_FIXUP_HP_GPIO_LED),
    8963         SND_PCI_QUIRK(0x103c, 0x2272, "HP", ALC280_FIXUP_HP_DOCK_PINS),
    8964         SND_PCI_QUIRK(0x103c, 0x2273, "HP", ALC280_FIXUP_HP_DOCK_PINS),
    8965         SND_PCI_QUIRK(0x103c, 0x229e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8966         SND_PCI_QUIRK(0x103c, 0x22b2, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8967         SND_PCI_QUIRK(0x103c, 0x22b7, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8968         SND_PCI_QUIRK(0x103c, 0x22bf, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8969         SND_PCI_QUIRK(0x103c, 0x22cf, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8970         SND_PCI_QUIRK(0x103c, 0x22db, "HP", ALC280_FIXUP_HP_9480M),
    8971         SND_PCI_QUIRK(0x103c, 0x22dc, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    8972         SND_PCI_QUIRK(0x103c, 0x22fb, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    8973         /* ALC290 */
    8974         SND_PCI_QUIRK(0x103c, 0x221b, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    8975         SND_PCI_QUIRK(0x103c, 0x2221, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    8976         SND_PCI_QUIRK(0x103c, 0x2225, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    89779277        SND_PCI_QUIRK(0x103c, 0x2253, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    89789278        SND_PCI_QUIRK(0x103c, 0x2254, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
     
    89829282        SND_PCI_QUIRK(0x103c, 0x2259, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    89839283        SND_PCI_QUIRK(0x103c, 0x225a, "HP", ALC269_FIXUP_HP_DOCK_GPIO_MIC1_LED),
     9284        SND_PCI_QUIRK(0x103c, 0x225f, "HP", ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY),
    89849285        SND_PCI_QUIRK(0x103c, 0x2260, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89859286        SND_PCI_QUIRK(0x103c, 0x2263, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89869287        SND_PCI_QUIRK(0x103c, 0x2264, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89879288        SND_PCI_QUIRK(0x103c, 0x2265, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9289        SND_PCI_QUIRK(0x103c, 0x2268, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9290        SND_PCI_QUIRK(0x103c, 0x226a, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9291        SND_PCI_QUIRK(0x103c, 0x226b, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9292        SND_PCI_QUIRK(0x103c, 0x226e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9293        SND_PCI_QUIRK(0x103c, 0x2271, "HP", ALC286_FIXUP_HP_GPIO_LED),
    89889294        SND_PCI_QUIRK(0x103c, 0x2272, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
     9295        SND_PCI_QUIRK(0x103c, 0x2272, "HP", ALC280_FIXUP_HP_DOCK_PINS),
    89899296        SND_PCI_QUIRK(0x103c, 0x2273, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
     9297        SND_PCI_QUIRK(0x103c, 0x2273, "HP", ALC280_FIXUP_HP_DOCK_PINS),
    89909298        SND_PCI_QUIRK(0x103c, 0x2278, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    89919299        SND_PCI_QUIRK(0x103c, 0x227f, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     
    89939301        SND_PCI_QUIRK(0x103c, 0x228b, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89949302        SND_PCI_QUIRK(0x103c, 0x228e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9303        SND_PCI_QUIRK(0x103c, 0x229e, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9304        SND_PCI_QUIRK(0x103c, 0x22b2, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9305        SND_PCI_QUIRK(0x103c, 0x22b7, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9306        SND_PCI_QUIRK(0x103c, 0x22bf, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9307        SND_PCI_QUIRK(0x103c, 0x22c4, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89959308        SND_PCI_QUIRK(0x103c, 0x22c5, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89969309        SND_PCI_QUIRK(0x103c, 0x22c7, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    89979310        SND_PCI_QUIRK(0x103c, 0x22c8, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    8998         SND_PCI_QUIRK(0x103c, 0x22c4, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9311        SND_PCI_QUIRK(0x103c, 0x22cf, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
     9312        SND_PCI_QUIRK(0x103c, 0x22db, "HP", ALC280_FIXUP_HP_9480M),
     9313        SND_PCI_QUIRK(0x103c, 0x22dc, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
     9314        SND_PCI_QUIRK(0x103c, 0x22fb, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
    89999315        SND_PCI_QUIRK(0x103c, 0x2334, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    90009316        SND_PCI_QUIRK(0x103c, 0x2335, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    90019317        SND_PCI_QUIRK(0x103c, 0x2336, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    90029318        SND_PCI_QUIRK(0x103c, 0x2337, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1),
    9003         SND_PCI_QUIRK(0x103c, 0x221c, "HP EliteBook 755 G2", ALC280_FIXUP_HP_HEADSET_MIC),
    90049319        SND_PCI_QUIRK(0x103c, 0x802e, "HP Z240 SFF", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
    90059320        SND_PCI_QUIRK(0x103c, 0x802f, "HP Z240", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
     9321        SND_PCI_QUIRK(0x103c, 0x8077, "HP", ALC256_FIXUP_HP_HEADSET_MIC),
     9322        SND_PCI_QUIRK(0x103c, 0x8158, "HP", ALC256_FIXUP_HP_HEADSET_MIC),
    90069323        SND_PCI_QUIRK(0x103c, 0x820d, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
    90079324        SND_PCI_QUIRK(0x103c, 0x8256, "HP", ALC221_FIXUP_HP_FRONT_MIC),
     
    90119328        SND_PCI_QUIRK(0x103c, 0x82c0, "HP G3 mini premium", ALC221_FIXUP_HP_MIC_NO_PRESENCE),
    90129329        SND_PCI_QUIRK(0x103c, 0x83b9, "HP Spectre x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
     9330        SND_PCI_QUIRK(0x103c, 0x841c, "HP Pavilion 15-CK0xx", ALC269_FIXUP_HP_MUTE_LED_MIC3),
    90139331        SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
     9332        SND_PCI_QUIRK(0x103c, 0x84da, "HP OMEN dc0019-ur", ALC295_FIXUP_HP_OMEN),
    90149333        SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3),
     9334        SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_HP_SPECTRE_X360),
     9335        SND_PCI_QUIRK(0x103c, 0x861f, "HP Elite Dragonfly G1", ALC285_FIXUP_HP_GPIO_AMP_INIT),
    90159336        SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED),
     9337        SND_PCI_QUIRK(0x103c, 0x86c7, "HP Envy AiO 32", ALC274_FIXUP_HP_ENVY_GPIO),
     9338        SND_PCI_QUIRK(0x103c, 0x8716, "HP Elite Dragonfly G2 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
     9339        SND_PCI_QUIRK(0x103c, 0x8720, "HP EliteBook x360 1040 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
    90169340        SND_PCI_QUIRK(0x103c, 0x8724, "HP EliteBook 850 G7", ALC285_FIXUP_HP_GPIO_LED),
    90179341        SND_PCI_QUIRK(0x103c, 0x8729, "HP", ALC285_FIXUP_HP_GPIO_LED),
     9342        SND_PCI_QUIRK(0x103c, 0x8730, "HP ProBook 445 G7", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
    90189343        SND_PCI_QUIRK(0x103c, 0x8736, "HP", ALC285_FIXUP_HP_GPIO_AMP_INIT),
    90199344        SND_PCI_QUIRK(0x103c, 0x8760, "HP", ALC285_FIXUP_HP_MUTE_LED),
     
    90259350                      ALC285_FIXUP_HP_GPIO_AMP_INIT),
    90269351        SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED),
     9352        SND_PCI_QUIRK(0x103c, 0x87e5, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
     9353        SND_PCI_QUIRK(0x103c, 0x87e7, "HP ProBook 450 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
     9354        SND_PCI_QUIRK(0x103c, 0x87f1, "HP ProBook 630 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
     9355        SND_PCI_QUIRK(0x103c, 0x87f2, "HP ProBook 640 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
    90279356        SND_PCI_QUIRK(0x103c, 0x87f4, "HP", ALC287_FIXUP_HP_GPIO_LED),
    90289357        SND_PCI_QUIRK(0x103c, 0x87f5, "HP", ALC287_FIXUP_HP_GPIO_LED),
    90299358        SND_PCI_QUIRK(0x103c, 0x87f7, "HP Spectre x360 14", ALC245_FIXUP_HP_X360_AMP),
     9359        SND_PCI_QUIRK(0x103c, 0x880d, "HP EliteBook 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
     9360        SND_PCI_QUIRK(0x103c, 0x8846, "HP EliteBook 850 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
     9361        SND_PCI_QUIRK(0x103c, 0x8847, "HP EliteBook x360 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
     9362        SND_PCI_QUIRK(0x103c, 0x884b, "HP EliteBook 840 Aero G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
     9363        SND_PCI_QUIRK(0x103c, 0x884c, "HP EliteBook 840 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
     9364        SND_PCI_QUIRK(0x103c, 0x8862, "HP ProBook 445 G8 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
     9365        SND_PCI_QUIRK(0x103c, 0x8863, "HP ProBook 445 G8 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
     9366        SND_PCI_QUIRK(0x103c, 0x886d, "HP ZBook Fury 17.3 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
     9367        SND_PCI_QUIRK(0x103c, 0x8870, "HP ZBook Fury 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
     9368        SND_PCI_QUIRK(0x103c, 0x8873, "HP ZBook Studio 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
     9369        SND_PCI_QUIRK(0x103c, 0x888d, "HP ZBook Power 15.6 inch G8 Mobile Workstation PC", ALC236_FIXUP_HP_GPIO_LED),
     9370        SND_PCI_QUIRK(0x103c, 0x8896, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_MUTE_LED),
    90309371        SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
    90319372        SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300),
     
    90369377        SND_PCI_QUIRK(0x1043, 0x115d, "Asus 1015E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
    90379378        SND_PCI_QUIRK(0x1043, 0x11c0, "ASUS X556UR", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
     9379        SND_PCI_QUIRK(0x1043, 0x125e, "ASUS Q524UQK", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
    90389380        SND_PCI_QUIRK(0x1043, 0x1271, "ASUS X430UN", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
    90399381        SND_PCI_QUIRK(0x1043, 0x1290, "ASUS X441SA", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE),
    90409382        SND_PCI_QUIRK(0x1043, 0x12a0, "ASUS X441UV", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE),
     9383        SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC),
    90419384        SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC),
    9042         SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC),
    90439385        SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC),
    90449386        SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
    90459387        SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A),
    90469388        SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
     9389        SND_PCI_QUIRK(0x1043, 0x1740, "ASUS UX430UA", ALC295_FIXUP_ASUS_DACS),
    90479390        SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK),
     9391        SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS),
    90489392        SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),
    90499393        SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC),
     
    90589402        SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
    90599403        SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
    9060         SND_PCI_QUIRK(0x1043, 0x125e, "ASUS Q524UQK", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
    90619404        SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC),
    90629405        SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE),
    90639406        SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502),
     9407        SND_PCI_QUIRK(0x1043, 0x1e51, "ASUS Zephyrus M15", ALC294_FIXUP_ASUS_GU502_PINS),
     9408        SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401),
    90649409        SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401),
    9065         SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS),
    90669410        SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
    90679411        SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC),
     
    90709414        SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
    90719415        SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101),
    9072         SND_PCI_QUIRK(0x104d, 0x90b5, "Sony VAIO Pro 11", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
    9073         SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
    90749416        SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2),
    90759417        SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
    90769418        SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
    90779419        SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX),
     9420        SND_PCI_QUIRK(0x104d, 0x90b5, "Sony VAIO Pro 11", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
     9421        SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
    90789422        SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK),
    90799423        SND_PCI_QUIRK(0x10cf, 0x159f, "Lifebook E780", ALC269_FIXUP_LIFEBOOK_NO_HP_TO_LINEOUT),
    90809424        SND_PCI_QUIRK(0x10cf, 0x15dc, "Lifebook T731", ALC269_FIXUP_LIFEBOOK_HP_PIN),
     9425        SND_PCI_QUIRK(0x10cf, 0x1629, "Lifebook U7x7", ALC255_FIXUP_LIFEBOOK_U7x7_HEADSET_MIC),
    90819426        SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
    9082         SND_PCI_QUIRK(0x10cf, 0x1629, "Lifebook U7x7", ALC255_FIXUP_LIFEBOOK_U7x7_HEADSET_MIC),
    90839427        SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
    90849428        SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
     9429        SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
    90859430        SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
    90869431        SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
     
    90929437        SND_PCI_QUIRK(0x144d, 0xc189, "Samsung Galaxy Flex Book (NT950QCG-X716)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
    90939438        SND_PCI_QUIRK(0x144d, 0xc18a, "Samsung Galaxy Book Ion (NP930XCJ-K01US)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
    9094         SND_PCI_QUIRK(0x144d, 0xc830, "Samsung Galaxy Book Ion (NT950XCJ-X716A)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
    90959439        SND_PCI_QUIRK(0x144d, 0xc740, "Samsung Ativ book 8 (NP870Z5G)", ALC269_FIXUP_ATIV_BOOK_8),
    90969440        SND_PCI_QUIRK(0x144d, 0xc812, "Samsung Notebook Pen S (NT950SBE-X58)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
     9441        SND_PCI_QUIRK(0x144d, 0xc830, "Samsung Galaxy Book Ion (NT950XCJ-X716A)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET),
    90979442        SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_HEADSET_MIC),
    90989443        SND_PCI_QUIRK(0x1462, 0xb120, "MSI Cubi MS-B120", ALC283_FIXUP_HEADSET_MIC),
     
    91179462        SND_PCI_QUIRK(0x1558, 0x50d5, "Clevo NP50D5", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91189463        SND_PCI_QUIRK(0x1558, 0x50f0, "Clevo NH50A[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9464        SND_PCI_QUIRK(0x1558, 0x50f2, "Clevo NH50E[PR]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91199465        SND_PCI_QUIRK(0x1558, 0x50f3, "Clevo NH58DPQ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9466        SND_PCI_QUIRK(0x1558, 0x50f5, "Clevo NH55EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9467        SND_PCI_QUIRK(0x1558, 0x50f6, "Clevo NH55DPQ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91209468        SND_PCI_QUIRK(0x1558, 0x5101, "Clevo S510WU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91219469        SND_PCI_QUIRK(0x1558, 0x5157, "Clevo W517GU1", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     
    91239471        SND_PCI_QUIRK(0x1558, 0x70a1, "Clevo NB70T[HJK]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91249472        SND_PCI_QUIRK(0x1558, 0x70b3, "Clevo NK70SB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9473        SND_PCI_QUIRK(0x1558, 0x70f2, "Clevo NH79EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9474        SND_PCI_QUIRK(0x1558, 0x70f3, "Clevo NH77DPQ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9475        SND_PCI_QUIRK(0x1558, 0x70f4, "Clevo NH77EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9476        SND_PCI_QUIRK(0x1558, 0x70f6, "Clevo NH77DPQ-Y", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91259477        SND_PCI_QUIRK(0x1558, 0x8228, "Clevo NR40BU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91269478        SND_PCI_QUIRK(0x1558, 0x8520, "Clevo NH50D[CD]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     
    91329484        SND_PCI_QUIRK(0x1558, 0x8560, "System76 Gazelle (gaze14)", ALC269_FIXUP_HEADSET_MIC),
    91339485        SND_PCI_QUIRK(0x1558, 0x8561, "System76 Gazelle (gaze14)", ALC269_FIXUP_HEADSET_MIC),
     9486        SND_PCI_QUIRK(0x1558, 0x8562, "Clevo NH[5|7][0-9]RZ[Q]", ALC269_FIXUP_DMIC),
    91349487        SND_PCI_QUIRK(0x1558, 0x8668, "Clevo NP50B[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91359488        SND_PCI_QUIRK(0x1558, 0x8680, "Clevo NJ50LU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     
    91399492        SND_PCI_QUIRK(0x1558, 0x8d50, "Clevo NH55RCQ-M", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91409493        SND_PCI_QUIRK(0x1558, 0x951d, "Clevo N950T[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9494        SND_PCI_QUIRK(0x1558, 0x9600, "Clevo N960K[PR]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91419495        SND_PCI_QUIRK(0x1558, 0x961d, "Clevo N960S[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91429496        SND_PCI_QUIRK(0x1558, 0x971d, "Clevo N970T[CDF]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91439497        SND_PCI_QUIRK(0x1558, 0xa500, "Clevo NL53RU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9498        SND_PCI_QUIRK(0x1558, 0xa600, "Clevo NL5XNU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9499        SND_PCI_QUIRK(0x1558, 0xb018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9500        SND_PCI_QUIRK(0x1558, 0xb019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9501        SND_PCI_QUIRK(0x1558, 0xb022, "Clevo NH77D[DC][QW]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9502        SND_PCI_QUIRK(0x1558, 0xc018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9503        SND_PCI_QUIRK(0x1558, 0xc019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
     9504        SND_PCI_QUIRK(0x1558, 0xc022, "Clevo NH77[DC][QW]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
    91449505        SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC233_FIXUP_LENOVO_MULTI_CODECS),
    9145         SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
     9506        SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
    91469507        SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE),
    91479508        SND_PCI_QUIRK(0x17aa, 0x215e, "Thinkpad L512", ALC269_FIXUP_SKU_IGNORE),
     
    91499510        SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE),
    91509511        SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE),
     9512        SND_PCI_QUIRK(0x17aa, 0x21f3, "Thinkpad T430", ALC269_FIXUP_LENOVO_DOCK),
    91519513        SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK_LIMIT_BOOST),
    91529514        SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK),
    9153         SND_PCI_QUIRK(0x17aa, 0x21f3, "Thinkpad T430", ALC269_FIXUP_LENOVO_DOCK),
    91549515        SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
    91559516        SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
     
    91929553        SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC),
    91939554        SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME),
     9555        SND_PCI_QUIRK(0x17aa, 0x3827, "Ideapad S740", ALC285_FIXUP_IDEAPAD_S740_COEF),
     9556        SND_PCI_QUIRK(0x17aa, 0x3843, "Yoga 9i", ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP),
    91949557        SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
    91959558        SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
    91969559        SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo B50-70", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
     9560        SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
    91979561        SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
    91989562        SND_PCI_QUIRK(0x17aa, 0x501a, "Thinkpad", ALC283_FIXUP_INT_MIC),
     
    92139577        SND_PCI_QUIRK(0x17aa, 0x511e, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
    92149578        SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
    9215         SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
    92169579        SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
    92179580        SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
     
    92209583        SND_PCI_QUIRK(0x1b35, 0x1237, "CZC L101", ALC269_FIXUP_CZC_L101),
    92219584        SND_PCI_QUIRK(0x1b7d, 0xa831, "Ordissimo EVE2 ", ALC269VB_FIXUP_ORDISSIMO_EVE2), /* Also known as Malata PC-B1303 */
    9222         SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
    9223         SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
    9224         SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
    92259585        SND_PCI_QUIRK(0x1c06, 0x2013, "Lemote A1802", ALC269_FIXUP_LEMOTE_A1802),
    92269586        SND_PCI_QUIRK(0x1c06, 0x2015, "Lemote A190X", ALC269_FIXUP_LEMOTE_A190X),
     9587        SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
     9588        SND_PCI_QUIRK(0x1d72, 0x1701, "XiaomiNotebook Pro", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE),
     9589        SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
     9590        SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
     9591        SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
    92279592        SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
     9593        SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10),
    92289594
    92299595#if 0
     
    93559721        {.id = ALC255_FIXUP_MIC_MUTE_LED, .name = "alc255-dell-mute"},
    93569722        {.id = ALC282_FIXUP_ASPIRE_V5_PINS, .name = "aspire-v5"},
     9723        {.id = ALC269VB_FIXUP_ASPIRE_E1_COEF, .name = "aspire-e1-coef"},
    93579724        {.id = ALC280_FIXUP_HP_GPIO4, .name = "hp-gpio4"},
    93589725        {.id = ALC286_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"},
     
    94019768        {.id = ALC274_FIXUP_HP_MIC, .name = "alc274-hp-mic-detect"},
    94029769        {.id = ALC245_FIXUP_HP_X360_AMP, .name = "alc245-hp-x360-amp"},
     9770        {.id = ALC295_FIXUP_HP_OMEN, .name = "alc295-hp-omen"},
     9771        {.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"},
     9772        {.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"},
     9773        {.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"},
     9774        {.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name = "alc255-acer-headphone-and-mic"},
    94039775        {0}
    94049776};
     
    967810050                {0x19, 0x03a11020},
    967910051                {0x21, 0x0321101f}),
    9680         SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK,
     10052        SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
     10053                {0x12, 0x90a60130},
    968110054                {0x14, 0x90170110},
    968210055                {0x19, 0x04a11040},
    968310056                {0x21, 0x04211020}),
    968410057        SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
    9685                 {0x12, 0x90a60130},
     10058                {0x14, 0x90170110},
     10059                {0x19, 0x04a11040},
     10060                {0x1d, 0x40600001},
     10061                {0x21, 0x04211020}),
     10062        SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK,
    968610063                {0x14, 0x90170110},
    968710064                {0x19, 0x04a11040},
     
    998810365                spec->init_hook = alc256_init;
    998910366                break;
     10367        case 0x10ec0230:
    999010368        case 0x10ec0236:
    999110369        case 0x10ec0256:
     
    1019310571        SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F),
    1019410572        SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT),
    10195         SND_PCI_QUIRK(0x1584, 0x2b01, "Haier W18", ALC861_FIXUP_AMP_VREF_0F),
    10196         SND_PCI_QUIRK(0x1584, 0x0000, "Uniwill ECS M31EI", ALC861_FIXUP_AMP_VREF_0F),
     10573        SND_PCI_QUIRK_VENDOR(0x1584, "Haier/Uniwill", ALC861_FIXUP_AMP_VREF_0F),
    1019710574        SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", ALC861_FIXUP_FSC_AMILO_PI1505),
    1019810575        {0}
     
    1029810675                .chain_id = ALC255_FIXUP_ACER_MIC_NO_PRESENCE,
    1029910676        },
     10677#ifdef TARGET_OS2xxx
     10678        [ALC256_FIXUP_ACER_HEADSET_MIC] = {
     10679                .type = HDA_FIXUP_PINS,
     10680                .v.pins = (const struct hda_pintbl[]) {
     10681                        { 0x19, 0x02a1113c }, /* use as headset mic, without its own jack detect */
     10682                        { 0x1a, 0x90a1092f }, /* use as internal mic */
     10683                        {0}
     10684                },
     10685                .chained = true,
     10686                .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
     10687        },
     10688#endif
    1030010689};
    1030110690
     
    1118011569        SND_PCI_QUIRK(0x1025, 0x034a, "Gateway LT27", ALC662_FIXUP_INV_DMIC),
    1118111570        SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
     11571        SND_PCI_QUIRK(0x1025, 0x0566, "Acer Aspire Ethos 8951G", ALC669_FIXUP_ACER_ASPIRE_ETHOS),
    1118211572        SND_PCI_QUIRK(0x1025, 0x123c, "Acer Nitro N50-600", ALC662_FIXUP_ACER_NITRO_HEADSET_MODE),
    1118311573        SND_PCI_QUIRK(0x1025, 0x124e, "Acer 2660G", ALC662_FIXUP_ACER_X2660G_HEADSET_MODE),
     
    1119611586        SND_PCI_QUIRK(0x1043, 0x1080, "Asus UX501VW", ALC668_FIXUP_HEADSET_MODE),
    1119711587        SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_ASUS_Nx50),
    11198         SND_PCI_QUIRK(0x1043, 0x13df, "Asus N550JX", ALC662_FIXUP_BASS_1A),
    1119911588        SND_PCI_QUIRK(0x1043, 0x129d, "Asus N750", ALC662_FIXUP_ASUS_Nx50),
    1120011589        SND_PCI_QUIRK(0x1043, 0x12ff, "ASUS G751", ALC668_FIXUP_ASUS_G751),
     11590        SND_PCI_QUIRK(0x1043, 0x13df, "Asus N550JX", ALC662_FIXUP_BASS_1A),
    1120111591        SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),
    1120211592        SND_PCI_QUIRK(0x1043, 0x15a7, "ASUS UX51VZH", ALC662_FIXUP_BASS_16),
     
    1121811608        SND_PCI_QUIRK(0x1b35, 0x1234, "CZC ET26", ALC662_FIXUP_CZC_ET26),
    1121911609        SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
    11220         SND_PCI_QUIRK(0x1025, 0x0566, "Acer Aspire Ethos 8951G", ALC669_FIXUP_ACER_ASPIRE_ETHOS),
    1122111610
    1122211611#if 0
     
    1149611885        HDA_CODEC_ENTRY(0x10ec0222, "ALC222", patch_alc269),
    1149711886        HDA_CODEC_ENTRY(0x10ec0225, "ALC225", patch_alc269),
     11887        HDA_CODEC_ENTRY(0x10ec0230, "ALC236", patch_alc269),
    1149811888        HDA_CODEC_ENTRY(0x10ec0231, "ALC231", patch_alc269),
    1149911889        HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269),
  • GPL/trunk/alsa-kernel/pci/intel8x0.c

    r679 r689  
    358358        struct ac97_pcm *pcm;
    359359        int pcm_open_flag;
     360        unsigned int prepared:1;
    360361        unsigned int suspended: 1;
    361362};
     
    717718        int status, civ, i, step;
    718719        int ack = 0;
     720
     721        if (!(ichdev->prepared || chip->in_measurement) || ichdev->suspended)
     722                return;
    719723
    720724        spin_lock_irqsave(&chip->reg_lock, flags);
     
    908912                snd_ac97_pcm_close(ichdev->pcm);
    909913                ichdev->pcm_open_flag = 0;
     914                ichdev->prepared = 0;
    910915        }
    911916        err = snd_ac97_pcm_open(ichdev->pcm, params_rate(hw_params),
     
    929934                snd_ac97_pcm_close(ichdev->pcm);
    930935                ichdev->pcm_open_flag = 0;
     936                ichdev->prepared = 0;
    931937        }
    932938        return 0;
     
    10031009        }
    10041010        snd_intel8x0_setup_periods(chip, ichdev);
     1011        ichdev->prepared = 1;
    10051012        return 0;
    10061013}
  • GPL/trunk/alsa-kernel/pci/rme9652/hdsp.c

    r679 r689  
    53225322                pci_release_regions(hdsp->pci);
    53235323
    5324         pci_disable_device(hdsp->pci);
     5324        if (pci_is_enabled(hdsp->pci))
     5325                pci_disable_device(hdsp->pci);
    53255326        return 0;
    53265327}
  • GPL/trunk/alsa-kernel/pci/rme9652/hdspm.c

    r679 r689  
    68926892                pci_release_regions(hdspm->pci);
    68936893
    6894         pci_disable_device(hdspm->pci);
     6894        if (pci_is_enabled(hdspm->pci))
     6895                pci_disable_device(hdspm->pci);
    68956896        return 0;
    68966897}
  • GPL/trunk/alsa-kernel/pci/rme9652/rme9652.c

    r679 r689  
    17411741                pci_release_regions(rme9652->pci);
    17421742
    1743         pci_disable_device(rme9652->pci);
     1743        if (pci_is_enabled(rme9652->pci))
     1744                pci_disable_device(rme9652->pci);
    17441745        return 0;
    17451746}
  • GPL/trunk/include/linux/pm.h

    r679 r689  
    3333};
    3434
     35typedef struct pm_message {
     36        int event;
     37} pm_message_t;
     38
    3539/*
    3640 * Power management requests
     
    250254extern void device_power_up(void);
    251255extern void device_resume(void);
    252 
    253 
    254 typedef struct pm_message {
    255         int event;
    256 } pm_message_t;
    257 
    258 #define PMSG_FREEZE     3
    259 #define PMSG_SUSPEND    3
    260 #define PMSG_ON         0
    261 #define PMSG_RESUME     0
    262 #define PMSG_THAW       0
    263 #define PMSG_RESTORE    0
    264 
    265256
    266257struct dev_pm_ops {
     
    322313};
    323314
     315#define PM_EVENT_INVALID        (-1)
     316#define PM_EVENT_ON             0x0000
     317#define PM_EVENT_FREEZE         0x0001
     318#define PM_EVENT_SUSPEND        0x0002
     319#define PM_EVENT_HIBERNATE      0x0004
     320#define PM_EVENT_QUIESCE        0x0008
     321#define PM_EVENT_RESUME         0x0010
     322#define PM_EVENT_THAW           0x0020
    324323#define PM_EVENT_RESTORE        0x0040
     324#define PM_EVENT_RECOVER        0x0080
     325#define PM_EVENT_USER           0x0100
     326#define PM_EVENT_REMOTE         0x0200
     327#define PM_EVENT_AUTO           0x0400
     328
     329#define PM_EVENT_SLEEP          (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE)
     330#define PM_EVENT_USER_SUSPEND   (PM_EVENT_USER | PM_EVENT_SUSPEND)
     331#define PM_EVENT_USER_RESUME    (PM_EVENT_USER | PM_EVENT_RESUME)
     332#define PM_EVENT_REMOTE_RESUME  (PM_EVENT_REMOTE | PM_EVENT_RESUME)
     333#define PM_EVENT_AUTO_SUSPEND   (PM_EVENT_AUTO | PM_EVENT_SUSPEND)
     334#define PM_EVENT_AUTO_RESUME    (PM_EVENT_AUTO | PM_EVENT_RESUME)
     335
     336#define PMSG_FREEZE     3
     337#define PMSG_SUSPEND    3
     338#define PMSG_ON         0
     339#define PMSG_RESUME     0
     340#define PMSG_THAW       0
     341#define PMSG_RESTORE    0
    325342
    326343#endif /* _LINUX_PM_H */
  • GPL/trunk/include/linux/workqueue.h

    r679 r689  
    55#include <linux/completion.h>
    66#include <linux/bitops.h>
     7
    78
    89#define cancel_work_sync(w)     flush_scheduled_work()
     
    2829        struct completion thread_exited;
    2930};
     31
    3032struct delayed_work {
    3133        struct work_struct work;
     34        struct timer_list timer;
     35
     36        /* target workqueue and CPU ->timer uses to queue ->work */
     37        struct workqueue_struct *wq;
     38        int cpu;
    3239};
    3340
     
    8693#define flush_work(work) cancel_work_sync(work)
    8794
     95#define container_of(ptr, type, member) \
     96( (type *)( (char *)ptr - offsetof(type,member) ) )
     97
     98static inline struct delayed_work *to_delayed_work(struct work_struct *work)
     99{
     100        return container_of(work, struct delayed_work, work);
     101}
     102
    88103#endif /* __LINUX_WORKQUEUE_H */
  • GPL/trunk/lib32/initcall.h

    r679 r689  
    125125extern_module_init(ca0110_driver_init)
    126126extern_module_exit(ca0110_driver_exit)
     127extern_module_init(ca0132_driver_init)
     128extern_module_exit(ca0132_driver_exit)
    127129extern_module_init(cirrus_driver_init)
    128130extern_module_exit(cirrus_driver_exit)
  • GPL/trunk/lib32/ossidc.c

    r679 r689  
    129129        call_module_init(analog_driver_init);
    130130        call_module_init(ca0110_driver_init);
     131        call_module_init(ca0132_driver_init);
    131132        call_module_init(cirrus_driver_init);
    132133        call_module_init(cmedia_driver_init);
  • GPL/trunk/uniaud.inc

    r679 r689  
    77# BUILDVERSION must be 3 parts, and only numbers like 5.44.108
    88# The second and third numbers must be 2 digits
    9 BUILDVERSION = 3.01.01
     9BUILDVERSION = 3.01.02
    1010
    1111# Fixpack version
Note: See TracChangeset for help on using the changeset viewer.