Changeset 760
- Timestamp:
- Sep 1, 2024, 10:57:46 AM (11 months ago)
- Location:
- GPL/branches/uniaud32-exp
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/uniaud32-exp/alsa-kernel/core/info.c
r750 r760 57 57 58 58 static int snd_info_version_init(void); 59 static void snd_info_ disconnect(struct snd_info_entry *entry);59 static void snd_info_clear_entries(struct snd_info_entry *entry); 60 60 61 61 /* … … 572 572 if (!card) 573 573 return; 574 575 proc_remove(card->proc_root_link); 576 if (card->proc_root) 577 proc_remove(card->proc_root->p); 578 574 579 mutex_lock(&info_mutex); 575 proc_remove(card->proc_root_link); 580 if (card->proc_root) 581 snd_info_clear_entries(card->proc_root); 576 582 card->proc_root_link = NULL; 577 if (card->proc_root) 578 snd_info_disconnect(card->proc_root); 583 card->proc_root = NULL; 579 584 mutex_unlock(&info_mutex); 580 585 } … … 748 753 EXPORT_SYMBOL(snd_info_create_card_entry); 749 754 750 static void snd_info_ disconnect(struct snd_info_entry *entry)755 static void snd_info_clear_entries(struct snd_info_entry *entry) 751 756 { 752 757 struct snd_info_entry *p; … … 755 760 return; 756 761 list_for_each_entry(p, &entry->children, list, struct snd_info_entry) 757 snd_info_disconnect(p); 758 proc_remove(entry->p); 762 snd_info_clear_entries(p); 759 763 entry->p = NULL; 760 764 } … … 773 777 return; 774 778 if (entry->p) { 779 proc_remove(entry->p); 775 780 mutex_lock(&info_mutex); 776 snd_info_ disconnect(entry);781 snd_info_clear_entries(entry); 777 782 mutex_unlock(&info_mutex); 778 783 } -
GPL/branches/uniaud32-exp/alsa-kernel/core/init.c
r750 r760 312 312 #ifdef MODULE 313 313 WARN_ON(!module); 314 #endif 314 315 card->module = module; 315 #endif316 316 INIT_LIST_HEAD(&card->devices); 317 317 init_rwsem(&card->controls_rwsem); … … 526 526 spin_unlock(&card->files_lock); 527 527 528 #ifdef CONFIG_PM 529 /* wake up sleepers here before other callbacks for avoiding potential 530 * deadlocks with other locks (e.g. in kctls); 531 * then this notifies the shutdown and sleepers would abort immediately 532 */ 533 wake_up_all(&card->power_sleep); 534 #endif 535 528 536 /* notify all connected devices about disconnection */ 529 537 /* at this point, they cannot respond to any calls except release() */ … … 541 549 542 550 snd_info_card_disconnect(card); 551 #ifdef CONFIG_SND_DEBUG 552 debugfs_remove(card->debugfs_root); 553 card->debugfs_root = NULL; 554 #endif 555 543 556 if (card->registered) { 544 557 device_del(&card->card_dev); … … 553 566 554 567 #ifdef CONFIG_PM 555 wake_up(&card->power_sleep);556 568 snd_power_sync_ref(card); 557 569 #endif … … 603 615 /* Not fatal error */ 604 616 } 605 #ifdef CONFIG_SND_DEBUG606 debugfs_remove(card->debugfs_root);607 card->debugfs_root = NULL;608 #endif609 617 if (card->release_completion) 610 618 complete(card->release_completion); -
GPL/branches/uniaud32-exp/alsa-kernel/core/jack.c
r759 r760 38 38 #endif /* CONFIG_SND_JACK_INPUT_DEV */ 39 39 40 static void snd_jack_remove_debugfs(struct snd_jack *jack); 41 40 42 static int snd_jack_dev_disconnect(struct snd_device *device) 41 43 { 42 #ifdef CONFIG_SND_JACK_INPUT_DEV43 44 struct snd_jack *jack = device->device_data; 44 45 45 mutex_lock(&jack->input_dev_lock); 46 if (!jack->input_dev) { 47 mutex_unlock(&jack->input_dev_lock); 46 snd_jack_remove_debugfs(jack); 47 48 #ifdef CONFIG_SND_JACK_INPUT_DEV 49 guard(mutex)(&jack->input_dev_lock); 50 if (!jack->input_dev) 48 51 return 0; 49 }50 52 51 53 /* If the input device is registered with the input subsystem … … 56 58 input_free_device(jack->input_dev); 57 59 jack->input_dev = NULL; 58 mutex_unlock(&jack->input_dev_lock);59 60 #endif /* CONFIG_SND_JACK_INPUT_DEV */ 60 61 return 0; … … 95 96 card->shortname, jack->id); 96 97 97 mutex_lock(&jack->input_dev_lock); 98 if (!jack->input_dev) { 99 mutex_unlock(&jack->input_dev_lock); 98 guard(mutex)(&jack->input_dev_lock); 99 if (!jack->input_dev) 100 100 return 0; 101 }102 101 103 102 jack->input_dev->name = jack->name; … … 124 123 jack->registered = 1; 125 124 126 mutex_unlock(&jack->input_dev_lock);127 125 return err; 128 126 } … … 390 388 } 391 389 392 static void snd_jack_debugfs_clear_inject_node(struct snd_jack_kctl *jack_kctl) 393 { 394 debugfs_remove(jack_kctl->jack_debugfs_root); 395 jack_kctl->jack_debugfs_root = NULL; 390 static void snd_jack_remove_debugfs(struct snd_jack *jack) 391 { 392 struct snd_jack_kctl *jack_kctl; 393 394 list_for_each_entry(jack_kctl, &jack->kctl_list, list) { 395 debugfs_remove(jack_kctl->jack_debugfs_root); 396 jack_kctl->jack_debugfs_root = NULL; 397 } 396 398 } 397 399 #else /* CONFIG_SND_JACK_INJECTION_DEBUG */ … … 402 404 } 403 405 404 static void snd_jack_ debugfs_clear_inject_node(struct snd_jack_kctl *jack_kctl)406 static void snd_jack_remove_debugfs(struct snd_jack *jack) 405 407 { 406 408 } … … 413 415 jack_kctl = kctl->private_data; 414 416 if (jack_kctl) { 415 snd_jack_debugfs_clear_inject_node(jack_kctl);416 417 list_del(&jack_kctl->list); 417 418 kfree(jack_kctl); … … 506 507 #ifdef CONFIG_SND_JACK_INPUT_DEV 507 508 .dev_register = snd_jack_dev_register, 509 #endif /* CONFIG_SND_JACK_INPUT_DEV */ 508 510 .dev_disconnect = snd_jack_dev_disconnect, 509 #endif /* CONFIG_SND_JACK_INPUT_DEV */510 511 }; 511 512 … … 589 590 { 590 591 WARN_ON(jack->registered); 591 mutex_lock(&jack->input_dev_lock); 592 if (!jack->input_dev) { 593 mutex_unlock(&jack->input_dev_lock); 594 return; 595 } 596 597 jack->input_dev->dev.parent = parent; 598 mutex_unlock(&jack->input_dev_lock); 592 guard(mutex)(&jack->input_dev_lock); 593 if (jack->input_dev) 594 jack->input_dev->dev.parent = parent; 599 595 } 600 596 EXPORT_SYMBOL(snd_jack_set_parent); -
GPL/branches/uniaud32-exp/alsa-kernel/core/pcm.c
r756 r760 257 257 STATE(PAUSED), 258 258 STATE(SUSPENDED), 259 STATE(DISCONNECTED), 259 260 }; 260 261 -
GPL/branches/uniaud32-exp/alsa-kernel/core/pcm_native.c
r757 r760 1809 1809 { 1810 1810 struct snd_pcm_runtime *runtime = substream->runtime; 1811 if (runtime->state != SNDRV_PCM_STATE_SUSPENDED) 1812 return -EBADFD; 1811 1813 if (!(runtime->info & SNDRV_PCM_INFO_RESUME)) 1812 1814 return -ENOSYS; -
GPL/branches/uniaud32-exp/alsa-kernel/core/seq/seq_midi.c
r697 r760 117 117 } 118 118 119 /* callback for snd_seq_dump_var_event(), bridging to dump_midi() */ 120 static int __dump_midi(void *ptr, void *buf, int count) 121 { 122 return dump_midi(ptr, buf, count); 123 } 124 119 125 static int event_process_midi(struct snd_seq_event *ev, int direct, 120 126 void *private_data, int atomic, int hop) … … 136 142 return 0; 137 143 } 138 snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)dump_midi, substream);144 snd_seq_dump_var_event(ev, __dump_midi, substream); 139 145 snd_midi_event_reset_decode(msynth->parser); 140 146 } else { -
GPL/branches/uniaud32-exp/alsa-kernel/core/timer.c
r739 r760 553 553 result = -EBUSY; 554 554 goto unlock; 555 } 556 557 /* check the actual time for the start tick; 558 * bail out as error if it's way too low (< 100us) 559 */ 560 if (start && !(timer->hw.flags & SNDRV_TIMER_HW_SLAVE)) { 561 if ((u64)snd_timer_hw_resolution(timer) * ticks < 100000) { 562 result = -EINVAL; 563 goto unlock; 564 } 555 565 } 556 566 -
GPL/branches/uniaud32-exp/alsa-kernel/hda/hdac_stream.c
r756 r760 368 368 369 369 /* make a non-zero unique key for the substream */ 370 int key = (substream->pcm->device << 16) | (substream->number << 2) | 371 (substream->stream + 1); 370 int key = (substream->number << 2) | (substream->stream + 1); 371 372 if (substream->pcm) 373 key |= (substream->pcm->device << 16); 372 374 373 375 spin_lock_irq(&bus->reg_lock); … … 671 673 bool inited = false; 672 674 u64 cycle_last = 0; 673 int i = 0;674 675 675 676 list_for_each_entry(s, &bus->stream_list, list, struct hdac_stream) { 676 if ( streams & (1 << i)) {677 if ((streams & (1 << s->index))) { 677 678 azx_timecounter_init(s, inited, cycle_last); 678 679 if (!inited) { … … 681 682 } 682 683 } 683 i++;684 684 } 685 685 … … 726 726 { 727 727 struct hdac_bus *bus = azx_dev->bus; 728 int i,nwait, timeout;728 int nwait, timeout; 729 729 struct hdac_stream *s; 730 730 731 731 for (timeout = 5000; timeout; timeout--) { 732 732 nwait = 0; 733 i = 0;734 733 list_for_each_entry(s, &bus->stream_list, list, struct hdac_stream) { 735 if (!(streams & (1 << i++)))734 if (!(streams & (1 << s->index))) 736 735 continue; 737 736 -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/dmaengine_pcm.h
r750 r760 37 37 struct dma_chan *chan); 38 38 int snd_dmaengine_pcm_close(struct snd_pcm_substream *substream); 39 int snd_dmaengine_pcm_sync_stop(struct snd_pcm_substream *substream); 39 40 40 41 int snd_dmaengine_pcm_open_request_chan(struct snd_pcm_substream *substream, -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/soc-acpi.h
r759 r760 68 68 * @num_dai_drivers: number of elements in @dai_drivers 69 69 * @dai_drivers: pointer to dai_drivers, used e.g. in nocodec mode 70 * @subsystem_vendor: optional PCI SSID vendor value 71 * @subsystem_device: optional PCI SSID device value 72 * @subsystem_id_set: true if a value has been written to 73 * subsystem_vendor and subsystem_device. 70 74 */ 71 75 struct snd_soc_acpi_mach_params { … … 80 84 u32 num_dai_drivers; 81 85 struct snd_soc_dai_driver *dai_drivers; 86 unsigned short subsystem_vendor; 87 unsigned short subsystem_device; 88 bool subsystem_id_set; 82 89 }; 83 90 -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/soc.h
r756 r760 912 912 char dmi_longname[80]; 913 913 #endif /* CONFIG_DMI */ 914 915 #ifdef CONFIG_PCI 916 /* 917 * PCI does not define 0 as invalid, so pci_subsystem_set indicates 918 * whether a value has been written to these fields. 919 */ 920 unsigned short pci_subsystem_vendor; 921 unsigned short pci_subsystem_device; 922 bool pci_subsystem_set; 923 #endif /* CONFIG_PCI */ 924 914 925 char topology_shortname[32]; 915 926 -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/sof.h
r756 r760 63 63 const char *name; 64 64 const char *platform; 65 66 /* 67 * PCI SSID. As PCI does not define 0 as invalid, the subsystem_id_set 68 * flag indicates that a value has been written to these members. 69 */ 70 unsigned short subsystem_vendor; 71 unsigned short subsystem_device; 72 bool subsystem_id_set; 65 73 66 74 struct device *dev; -
GPL/branches/uniaud32-exp/alsa-kernel/include/sound/version.h
r759 r760 1 1 /* include/version.h */ 2 #define CONFIG_SND_VERSION "6.1. 62"2 #define CONFIG_SND_VERSION "6.1.107" 3 3 #define CONFIG_SND_DATE "" -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_controller.h
r757 r760 29 29 #define AZX_DCAPS_I915_COMPONENT 0 /* NOP */ 30 30 #endif 31 /* 14 unused */31 #define AZX_DCAPS_AMD_ALLOC_FIX (1 << 14) /* AMD allocation workaround */ 32 32 #define AZX_DCAPS_CTX_WORKAROUND (1 << 15) /* X-Fi workaround */ 33 33 #define AZX_DCAPS_POSFIX_LPIB (1 << 16) /* Use LPIB as default */ -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/hda_intel.c
r759 r760 46 46 #ifdef CONFIG_X86 47 47 /* for snoop control */ 48 #include <linux/dma-map-ops.h> 48 49 #include <asm/set_memory.h> 49 50 #include <asm/cpufeature.h> … … 323 324 /* quirks for ATI HDMI with snoop off */ 324 325 #define AZX_DCAPS_PRESET_ATI_HDMI_NS \ 325 (AZX_DCAPS_PRESET_ATI_HDMI | AZX_DCAPS_ SNOOP_OFF)326 (AZX_DCAPS_PRESET_ATI_HDMI | AZX_DCAPS_AMD_ALLOC_FIX) 326 327 327 328 /* quirks for AMD SB */ … … 1755 1756 if (chip->driver_caps & AZX_DCAPS_SNOOP_OFF) 1756 1757 snoop = false; 1758 1759 #ifdef CONFIG_X86 1760 /* check the presence of DMA ops (i.e. IOMMU), disable snoop conditionally */ 1761 if ((chip->driver_caps & AZX_DCAPS_AMD_ALLOC_FIX) && 1762 !get_dma_ops(chip->card->dev)) 1763 snoop = false; 1764 #endif 1757 1765 1758 1766 chip->snoop = snoop; … … 2271 2279 /* https://bugs.launchpad.net/bugs/1821663 */ 2272 2280 SND_PCI_QUIRK(0x1631, 0xe017, "Packard Bell NEC IMEDIA 5204", 0), 2281 /* KONTRON SinglePC may cause a stall at runtime resume */ 2282 SND_PCI_QUIRK(0x1734, 0x1232, "KONTRON SinglePC", 0), 2273 2283 {0} 2274 2284 }; … … 2603 2613 { PCI_DEVICE(0x8086, 0xa828), 2604 2614 .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, 2615 /* Arrow Lake */ 2616 { PCI_DEVICE_DATA(INTEL, HDA_ARL, AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE) }, 2605 2617 /* Broxton-P(Apollolake) */ 2606 2618 { PCI_DEVICE(0x8086, 0x5a98), -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_conexant.c
r759 r760 47 47 unsigned int gpio_mute_led_mask; 48 48 unsigned int gpio_mic_led_mask; 49 49 bool is_cx8070_sn6140; 50 50 }; 51 51 … … 171 171 } 172 172 173 static void cx_fixup_headset_recog(struct hda_codec *codec) 174 { 175 unsigned int mic_persent; 176 177 /* fix some headset type recognize fail issue, such as EDIFIER headset */ 178 /* set micbiasd output current comparator threshold from 66% to 55%. */ 179 snd_hda_codec_write(codec, 0x1c, 0, 0x320, 0x010); 180 /* set OFF voltage for DFET from -1.2V to -0.8V, set headset micbias registor 181 * value adjustment trim from 2.2K ohms to 2.0K ohms. 182 */ 183 snd_hda_codec_write(codec, 0x1c, 0, 0x3b0, 0xe10); 184 /* fix reboot headset type recognize fail issue */ 185 mic_persent = snd_hda_codec_read(codec, 0x19, 0, AC_VERB_GET_PIN_SENSE, 0x0); 186 if (mic_persent & AC_PINSENSE_PRESENCE) 187 /* enable headset mic VREF */ 188 snd_hda_codec_write(codec, 0x19, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24); 189 else 190 /* disable headset mic VREF */ 191 snd_hda_codec_write(codec, 0x19, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20); 192 } 193 173 194 static int cx_auto_init(struct hda_codec *codec) 174 195 { … … 181 202 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT); 182 203 204 if (spec->is_cx8070_sn6140) 205 cx_fixup_headset_recog(codec); 206 183 207 return 0; 184 208 } … … 197 221 cx_auto_shutdown(codec); 198 222 snd_hda_gen_free(codec); 223 } 224 225 static void cx_process_headset_plugin(struct hda_codec *codec) 226 { 227 unsigned int val; 228 unsigned int count = 0; 229 230 /* Wait headset detect done. */ 231 do { 232 val = snd_hda_codec_read(codec, 0x1c, 0, 0xca0, 0x0); 233 if (val & 0x080) { 234 codec_dbg(codec, "headset type detect done!\n"); 235 break; 236 } 237 msleep(20); 238 count++; 239 } while (count < 3); 240 val = snd_hda_codec_read(codec, 0x1c, 0, 0xcb0, 0x0); 241 if (val & 0x800) { 242 codec_dbg(codec, "headset plugin, type is CTIA\n"); 243 snd_hda_codec_write(codec, 0x19, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24); 244 } else if (val & 0x400) { 245 codec_dbg(codec, "headset plugin, type is OMTP\n"); 246 snd_hda_codec_write(codec, 0x19, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24); 247 } else { 248 codec_dbg(codec, "headphone plugin\n"); 249 } 250 } 251 252 static void cx_update_headset_mic_vref(struct hda_codec *codec, struct hda_jack_callback *event) 253 { 254 unsigned int mic_present; 255 256 /* In cx8070 and sn6140, the node 16 can only be config to headphone or disabled, 257 * the node 19 can only be config to microphone or disabled. 258 * Check hp&mic tag to process headset pulgin&plugout. 259 */ 260 mic_present = snd_hda_codec_read(codec, 0x19, 0, AC_VERB_GET_PIN_SENSE, 0x0); 261 if (!(mic_present & AC_PINSENSE_PRESENCE)) /* mic plugout */ 262 snd_hda_codec_write(codec, 0x19, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20); 263 else 264 cx_process_headset_plugin(codec); 199 265 } 200 266 … … 249 315 CXT_FIXUP_HEADSET_MIC, 250 316 CXT_FIXUP_HP_MIC_NO_PRESENCE, 317 CXT_PINCFG_SWS_JS201D, 251 318 }; 252 319 … … 778 845 #endif 779 846 847 /* SuoWoSi/South-holding JS201D with sn6140 */ 848 static const struct hda_pintbl cxt_pincfg_sws_js201d[] = { 849 { 0x16, 0x03211040 }, /* hp out */ 850 { 0x17, 0x91170110 }, /* SPK/Class_D */ 851 { 0x18, 0x95a70130 }, /* Internal mic */ 852 { 0x19, 0x03a11020 }, /* Headset Mic */ 853 { 0x1a, 0x40f001f0 }, /* Not used */ 854 { 0x21, 0x40f001f0 }, /* Not used */ 855 {0} 856 }; 857 780 858 static const struct hda_fixup cxt_fixups[] = { 781 859 [CXT_PINCFG_LENOVO_X200] = { … … 955 1033 .chained = true, 956 1034 .chain_id = CXT_FIXUP_HEADSET_MIC, 1035 }, 1036 [CXT_PINCFG_SWS_JS201D] = { 1037 .type = HDA_FIXUP_PINS, 1038 .v.pins = cxt_pincfg_sws_js201d, 957 1039 }, 958 1040 #endif … … 1030 1112 SND_PCI_QUIRK(0x103c, 0x8458, "HP Z2 G4 mini premium", CXT_FIXUP_HP_MIC_NO_PRESENCE), 1031 1113 SND_PCI_QUIRK(0x1043, 0x138d, "Asus", CXT_FIXUP_HEADPHONE_MIC_PIN), 1114 SND_PCI_QUIRK(0x14f1, 0x0265, "SWS JS201D", CXT_PINCFG_SWS_JS201D), 1032 1115 SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT_FIXUP_OLPC_XO), 1033 1116 SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410), … … 1070 1153 { .id = CXT_FIXUP_HP_MIC_NO_PRESENCE, .name = "hp-mic-fix" }, 1071 1154 { .id = CXT_PINCFG_LENOVO_NOTEBOOK, .name = "lenovo-20149" }, 1155 { .id = CXT_PINCFG_SWS_JS201D, .name = "sws-js201d" }, 1072 1156 {0} 1073 1157 }; … … 1104 1188 codec->spec = spec; 1105 1189 codec->patch_ops = cx_auto_patch_ops; 1190 1191 /* init cx8070/sn6140 flag and reset headset_present_flag */ 1192 switch (codec->core.vendor_id) { 1193 case 0x14f11f86: 1194 case 0x14f11f87: 1195 spec->is_cx8070_sn6140 = true; 1196 snd_hda_jack_detect_enable_callback(codec, 0x19, cx_update_headset_mic_vref); 1197 break; 1198 } 1106 1199 1107 1200 cx_auto_parse_eapd(codec); -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_hdmi.c
r759 r760 2006 2006 2007 2007 static const struct snd_pci_quirk force_connect_list[] = { 2008 SND_PCI_QUIRK(0x103c, 0x83e2, "HP EliteDesk 800 G4", 1), 2009 SND_PCI_QUIRK(0x103c, 0x83ef, "HP MP9 G4 Retail System AMS", 1), 2008 2010 SND_PCI_QUIRK(0x103c, 0x870f, "HP", 1), 2009 2011 SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1), 2010 2012 SND_PCI_QUIRK(0x103c, 0x8711, "HP", 1), 2011 2013 SND_PCI_QUIRK(0x103c, 0x8715, "HP", 1), 2014 SND_PCI_QUIRK(0x1043, 0x86ae, "ASUS", 1), /* Z170 PRO */ 2015 SND_PCI_QUIRK(0x1043, 0x86c7, "ASUS", 1), /* Z170M PLUS */ 2012 2016 SND_PCI_QUIRK(0x1462, 0xec94, "MS-7C94", 1), 2017 SND_PCI_QUIRK(0x8086, 0x2060, "Intel NUC5CPYB", 1), 2013 2018 SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", 1), 2014 2019 {0} -
GPL/branches/uniaud32-exp/alsa-kernel/pci/hda/patch_realtek.c
r759 r760 597 597 case 0x19e58326: 598 598 case 0x10ec0283: 599 case 0x10ec0285: 599 600 case 0x10ec0286: 601 case 0x10ec0287: 600 602 case 0x10ec0288: 603 case 0x10ec0295: 601 604 case 0x10ec0298: 602 605 alc_headset_mic_no_shutup(codec); … … 2351 2354 ALC887_FIXUP_ASUS_HMIC, 2352 2355 ALCS1200A_FIXUP_MIC_VREF, 2356 ALC888VD_FIXUP_MIC_100VREF, 2353 2357 }; 2354 2358 … … 3163 3167 3164 3168 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), 3169 SND_PCI_QUIRK(0x10ec, 0x12d8, "iBase Elo Touch", ALC888VD_FIXUP_MIC_100VREF), 3165 3170 SND_PCI_QUIRK(0x13fe, 0x1009, "Advantech MIT-W101", ALC886_FIXUP_EAPD), 3166 3171 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3/Z87X-UD3H", ALC889_FIXUP_FRONT_HP_NO_PRESENCE), … … 3508 3513 .v.func = alc_fixup_no_depop_delay, 3509 3514 }, 3515 #ifdef NOT_USED 3516 [ALC888VD_FIXUP_MIC_100VREF] = { 3517 .type = HDA_FIXUP_PINCTLS, 3518 .v.pins = (const struct hda_pintbl[]) { 3519 { 0x18, PIN_VREF100 }, /* headset mic */ 3520 {} 3521 } 3522 }, 3523 #endif 3510 3524 }; 3511 3525 … … 3905 3919 case 0x10ec0236: 3906 3920 case 0x10ec0256: 3921 case 0x10ec0257: 3907 3922 case 0x19e58326: 3908 3923 alc_write_coef_idx(codec, 0x48, 0x0); … … 3934 3949 case 0x10ec0236: 3935 3950 case 0x10ec0256: 3951 case 0x10ec0257: 3936 3952 case 0x19e58326: 3937 3953 alc_write_coef_idx(codec, 0x48, 0xd011); … … 4320 4336 int coef38, coef0d, coef36; 4321 4337 4338 alc_write_coefex_idx(codec, 0x58, 0x00, 0x1888); /* write default value */ 4322 4339 alc_update_coef_idx(codec, 0x4a, 1<<15, 1<<15); /* Reset HP JD */ 4323 4340 coef38 = alc_read_coef_idx(codec, 0x38); /* Amp control */ … … 7199 7216 case 0x10ec0255: 7200 7217 case 0x10ec0256: 7218 case 0x10ec0257: 7201 7219 case 0x19e58326: 7202 7220 alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */ … … 7382 7400 /* force front speaker to DAC1 */ 7383 7401 snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn); 7402 break; 7403 } 7404 } 7405 7406 static void alc285_fixup_hp_envy_x360(struct hda_codec *codec, 7407 const struct hda_fixup *fix, 7408 int action) 7409 { 7410 static const struct coef_fw coefs[] = { 7411 WRITE_COEF(0x08, 0x6a0c), WRITE_COEF(0x0d, 0xa023), 7412 WRITE_COEF(0x10, 0x0320), WRITE_COEF(0x1a, 0x8c03), 7413 WRITE_COEF(0x25, 0x1800), WRITE_COEF(0x26, 0x003a), 7414 WRITE_COEF(0x28, 0x1dfe), WRITE_COEF(0x29, 0xb014), 7415 WRITE_COEF(0x2b, 0x1dfe), WRITE_COEF(0x37, 0xfe15), 7416 WRITE_COEF(0x38, 0x7909), WRITE_COEF(0x45, 0xd489), 7417 WRITE_COEF(0x46, 0x00f4), WRITE_COEF(0x4a, 0x21e0), 7418 WRITE_COEF(0x66, 0x03f0), WRITE_COEF(0x67, 0x1000), 7419 WRITE_COEF(0x6e, 0x1005), {0} 7420 }; 7421 7422 static const struct hda_pintbl pincfgs[] = { 7423 { 0x12, 0xb7a60130 }, /* Internal microphone*/ 7424 { 0x14, 0x90170150 }, /* B&O soundbar speakers */ 7425 { 0x17, 0x90170153 }, /* Side speakers */ 7426 { 0x19, 0x03a11040 }, /* Headset microphone */ 7427 {0} 7428 }; 7429 7430 switch (action) { 7431 case HDA_FIXUP_ACT_PRE_PROBE: 7432 snd_hda_apply_pincfgs(codec, pincfgs); 7433 7434 /* Fixes volume control problem for side speakers */ 7435 alc295_fixup_disable_dac3(codec, fix, action); 7436 7437 /* Fixes no sound from headset speaker */ 7438 snd_hda_codec_amp_stereo(codec, 0x21, HDA_OUTPUT, 0, -1, 0); 7439 7440 /* Auto-enable headset mic when plugged */ 7441 snd_hda_jack_set_gating_jack(codec, 0x19, 0x21); 7442 7443 /* Headset mic volume enhancement */ 7444 snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREF50); 7445 break; 7446 case HDA_FIXUP_ACT_INIT: 7447 alc_process_coef_fw(codec, coefs); 7448 break; 7449 case HDA_FIXUP_ACT_BUILD: 7450 rename_ctl(codec, "Bass Speaker Playback Volume", 7451 "B&O-Tuned Playback Volume"); 7452 rename_ctl(codec, "Front Playback Switch", 7453 "B&O Soundbar Playback Switch"); 7454 rename_ctl(codec, "Bass Speaker Playback Switch", 7455 "Side Speaker Playback Switch"); 7384 7456 break; 7385 7457 } … … 7802 7874 ALC269_FIXUP_THINKPAD_ACPI, 7803 7875 ALC269_FIXUP_DMIC_THINKPAD_ACPI, 7876 ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO, 7804 7877 ALC255_FIXUP_ACER_MIC_NO_PRESENCE, 7805 7878 ALC255_FIXUP_ASUS_MIC_NO_PRESENCE, … … 7823 7896 ALC245_FIXUP_HP_X360_AMP, 7824 7897 ALC285_FIXUP_HP_SPECTRE_X360_EB1, 7898 ALC285_FIXUP_HP_ENVY_X360, 7825 7899 ALC288_FIXUP_DELL_HEADSET_MODE, 7826 7900 ALC288_FIXUP_DELL1_MIC_NO_PRESENCE, … … 7844 7918 ALC285_FIXUP_ASUS_SPEAKER2_TO_DAC1, 7845 7919 ALC285_FIXUP_ASUS_HEADSET_MIC, 7920 ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS, 7846 7921 ALC285_FIXUP_ASUS_I2C_SPEAKER2_TO_DAC1, 7847 7922 ALC285_FIXUP_ASUS_I2C_HEADSET_MIC, … … 8348 8423 .v.func = alc269_fixup_pincfg_U7x7_headset_mic, 8349 8424 }, 8425 #ifdef NOT_USED 8426 [ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO] = { 8427 .type = HDA_FIXUP_PINS, 8428 .v.pins = (const struct hda_pintbl[]) { 8429 { 0x18, 0x03a19020 }, /* headset mic */ 8430 { 0x1b, 0x90170150 }, /* speaker */ 8431 { } 8432 }, 8433 }, 8434 #endif 8350 8435 [ALC269_FIXUP_AMIC] = { 8351 8436 .type = HDA_FIXUP_PINS, … … 9144 9229 .chained = true, 9145 9230 .chain_id = ALC285_FIXUP_ASUS_SPEAKER2_TO_DAC1 9231 }, 9232 [ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS] = { 9233 .type = HDA_FIXUP_PINS, 9234 .v.pins = (const struct hda_pintbl[]) { 9235 { 0x14, 0x90170120 }, 9236 { } 9237 }, 9238 .chained = true, 9239 .chain_id = ALC285_FIXUP_ASUS_HEADSET_MIC 9146 9240 }, 9147 9241 #endif … … 10056 10150 .type = HDA_FIXUP_FUNC, 10057 10151 .v.func = alc285_fixup_hp_spectre_x360_eb1 10152 }, 10153 [ALC285_FIXUP_HP_ENVY_X360] = { 10154 .type = HDA_FIXUP_FUNC, 10155 .v.func = alc285_fixup_hp_envy_x360, 10156 .chained = true, 10157 .chain_id = ALC285_FIXUP_HP_GPIO_AMP_INIT, 10058 10158 }, 10059 10159 [ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP] = { … … 10393 10493 .v.func = cs35l41_fixup_i2c_two, 10394 10494 .chained = true, 10395 .chain_id = ALC2 69_FIXUP_THINKPAD_ACPI,10495 .chain_id = ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK, 10396 10496 }, 10397 10497 [ALC245_FIXUP_HP_MUTE_LED_COEFBIT] = { … … 10408 10508 .type = HDA_FIXUP_FUNC, 10409 10509 .v.func = alc287_fixup_bind_dacs, 10510 .chained = true, 10511 .chain_id = ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK, 10410 10512 }, 10411 10513 [ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD] = { … … 10434 10536 SND_PCI_QUIRK(0x1025, 0x080d, "Acer Aspire V5-122P", ALC269_FIXUP_ASPIRE_HEADSET_MIC), 10435 10537 SND_PCI_QUIRK(0x1025, 0x0840, "Acer Aspire E1", ALC269VB_FIXUP_ASPIRE_E1_COEF), 10538 SND_PCI_QUIRK(0x1025, 0x100c, "Acer Aspire E5-574G", ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST), 10436 10539 SND_PCI_QUIRK(0x1025, 0x101c, "Acer Veriton N2510G", ALC269_FIXUP_LIFEBOOK), 10437 10540 SND_PCI_QUIRK(0x1025, 0x102b, "Acer Aspire C24-860", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE), … … 10447 10550 SND_PCI_QUIRK(0x1025, 0x1248, "Acer Veriton N4660G", ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE), 10448 10551 SND_PCI_QUIRK(0x1025, 0x1269, "Acer SWIFT SF314-54", ALC256_FIXUP_ACER_HEADSET_MIC), 10552 SND_PCI_QUIRK(0x1025, 0x126a, "Acer Swift SF114-32", ALC256_FIXUP_ACER_MIC_NO_PRESENCE), 10449 10553 SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC), 10450 10554 SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC), … … 10602 10706 SND_PCI_QUIRK(0x103c, 0x841c, "HP Pavilion 15-CK0xx", ALC269_FIXUP_HP_MUTE_LED_MIC3), 10603 10707 SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3), 10708 SND_PCI_QUIRK(0x103c, 0x84a6, "HP 250 G7 Notebook PC", ALC269_FIXUP_HP_LINE1_MIC1_LED), 10709 SND_PCI_QUIRK(0x103c, 0x84ae, "HP 15-db0403ng", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10604 10710 SND_PCI_QUIRK(0x103c, 0x84da, "HP OMEN dc0019-ur", ALC295_FIXUP_HP_OMEN), 10605 10711 SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3), 10606 10712 SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_HP_SPECTRE_X360), 10713 SND_PCI_QUIRK(0x103c, 0x8537, "HP ProBook 440 G6", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10714 SND_PCI_QUIRK(0x103c, 0x85de, "HP Envy x360 13-ar0xxx", ALC285_FIXUP_HP_ENVY_X360), 10607 10715 SND_PCI_QUIRK(0x103c, 0x860f, "HP ZBook 15 G6", ALC285_FIXUP_HP_GPIO_AMP_INIT), 10608 10716 SND_PCI_QUIRK(0x103c, 0x861f, "HP Elite Dragonfly G1", ALC285_FIXUP_HP_GPIO_AMP_INIT), 10609 10717 SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED), 10718 SND_PCI_QUIRK(0x103c, 0x86c1, "HP Laptop 15-da3001TU", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10610 10719 SND_PCI_QUIRK(0x103c, 0x86c7, "HP Envy AiO 32", ALC274_FIXUP_HP_ENVY_GPIO), 10611 10720 SND_PCI_QUIRK(0x103c, 0x86e7, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1), … … 10621 10730 SND_PCI_QUIRK(0x103c, 0x8736, "HP", ALC285_FIXUP_HP_GPIO_AMP_INIT), 10622 10731 SND_PCI_QUIRK(0x103c, 0x8760, "HP", ALC285_FIXUP_HP_MUTE_LED), 10732 SND_PCI_QUIRK(0x103c, 0x876e, "HP ENVY x360 Convertible 13-ay0xxx", ALC245_FIXUP_HP_X360_MUTE_LEDS), 10623 10733 SND_PCI_QUIRK(0x103c, 0x877a, "HP", ALC285_FIXUP_HP_MUTE_LED), 10624 10734 SND_PCI_QUIRK(0x103c, 0x877d, "HP", ALC236_FIXUP_HP_MUTE_LED), … … 10630 10740 SND_PCI_QUIRK(0x103c, 0x8787, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), 10631 10741 SND_PCI_QUIRK(0x103c, 0x8788, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), 10742 SND_PCI_QUIRK(0x103c, 0x87b7, "HP Laptop 14-fq0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10632 10743 SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED), 10744 SND_PCI_QUIRK(0x103c, 0x87d3, "HP Laptop 15-gw0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10633 10745 SND_PCI_QUIRK(0x103c, 0x87e5, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED), 10634 10746 SND_PCI_QUIRK(0x103c, 0x87e7, "HP ProBook 450 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED), … … 10639 10751 SND_PCI_QUIRK(0x103c, 0x87f6, "HP Spectre x360 14", ALC245_FIXUP_HP_X360_AMP), 10640 10752 SND_PCI_QUIRK(0x103c, 0x87f7, "HP Spectre x360 14", ALC245_FIXUP_HP_X360_AMP), 10753 SND_PCI_QUIRK(0x103c, 0x87fe, "HP Laptop 15s-fq2xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10641 10754 SND_PCI_QUIRK(0x103c, 0x8805, "HP ProBook 650 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED), 10642 10755 SND_PCI_QUIRK(0x103c, 0x880d, "HP EliteBook 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED), … … 10661 10774 SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED), 10662 10775 SND_PCI_QUIRK(0x103c, 0x8902, "HP OMEN 16", ALC285_FIXUP_HP_MUTE_LED), 10776 SND_PCI_QUIRK(0x103c, 0x890e, "HP 255 G8 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10663 10777 SND_PCI_QUIRK(0x103c, 0x8919, "HP Pavilion Aero Laptop 13-be0xxx", ALC287_FIXUP_HP_GPIO_LED), 10664 10778 SND_PCI_QUIRK(0x103c, 0x896d, "HP ZBook Firefly 16 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), … … 10669 10783 SND_PCI_QUIRK(0x103c, 0x8974, "HP EliteBook 840 Aero G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10670 10784 SND_PCI_QUIRK(0x103c, 0x8975, "HP EliteBook x360 840 Aero G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10785 SND_PCI_QUIRK(0x103c, 0x897d, "HP mt440 Mobile Thin Client U74", ALC236_FIXUP_HP_GPIO_LED), 10671 10786 SND_PCI_QUIRK(0x103c, 0x8981, "HP Elite Dragonfly G3", ALC245_FIXUP_CS35L41_SPI_4), 10672 10787 SND_PCI_QUIRK(0x103c, 0x898e, "HP EliteBook 835 G9", ALC287_FIXUP_CS35L41_I2C_2), … … 10686 10801 SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10687 10802 SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10803 SND_PCI_QUIRK(0x103c, 0x8a0f, "HP Pavilion 14-ec1xxx", ALC287_FIXUP_HP_GPIO_LED), 10688 10804 SND_PCI_QUIRK(0x103c, 0x8a20, "HP Laptop 15s-fq5xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10689 10805 SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT), … … 10693 10809 SND_PCI_QUIRK(0x103c, 0x8aa8, "HP EliteBook 640 G9 (MB 8AA6)", ALC236_FIXUP_HP_GPIO_LED), 10694 10810 SND_PCI_QUIRK(0x103c, 0x8aab, "HP EliteBook 650 G9 (MB 8AA9)", ALC236_FIXUP_HP_GPIO_LED), 10811 SND_PCI_QUIRK(0x103c, 0x8ab9, "HP EliteBook 840 G8 (MB 8AB8)", ALC285_FIXUP_HP_GPIO_LED), 10695 10812 SND_PCI_QUIRK(0x103c, 0x8abb, "HP ZBook Firefly 14 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10696 10813 SND_PCI_QUIRK(0x103c, 0x8ad1, "HP EliteBook 840 14 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10697 10814 SND_PCI_QUIRK(0x103c, 0x8ad2, "HP EliteBook 860 16 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10815 SND_PCI_QUIRK(0x103c, 0x8b0f, "HP Elite mt645 G7 Mobile Thin Client U81", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10816 SND_PCI_QUIRK(0x103c, 0x8b2f, "HP 255 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), 10817 SND_PCI_QUIRK(0x103c, 0x8b3f, "HP mt440 Mobile Thin Client U91", ALC236_FIXUP_HP_GPIO_LED), 10698 10818 SND_PCI_QUIRK(0x103c, 0x8b42, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10699 10819 SND_PCI_QUIRK(0x103c, 0x8b43, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), … … 10702 10822 SND_PCI_QUIRK(0x103c, 0x8b46, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10703 10823 SND_PCI_QUIRK(0x103c, 0x8b47, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10824 SND_PCI_QUIRK(0x103c, 0x8b59, "HP Elite mt645 G7 Mobile Thin Client U89", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10704 10825 SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10705 10826 SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), … … 10729 10850 SND_PCI_QUIRK(0x103c, 0x8c71, "HP EliteBook 845 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10730 10851 SND_PCI_QUIRK(0x103c, 0x8c72, "HP EliteBook 865 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), 10852 SND_PCI_QUIRK(0x103c, 0x8c7b, "HP ProBook 445 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10853 SND_PCI_QUIRK(0x103c, 0x8c7c, "HP ProBook 445 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10854 SND_PCI_QUIRK(0x103c, 0x8c7d, "HP ProBook 465 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10855 SND_PCI_QUIRK(0x103c, 0x8c7e, "HP ProBook 465 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10856 SND_PCI_QUIRK(0x103c, 0x8c7f, "HP EliteBook 645 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10857 SND_PCI_QUIRK(0x103c, 0x8c80, "HP EliteBook 645 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10858 SND_PCI_QUIRK(0x103c, 0x8c81, "HP EliteBook 665 G11", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10859 SND_PCI_QUIRK(0x103c, 0x8c89, "HP ProBook 460 G11", ALC236_FIXUP_HP_GPIO_LED), 10860 SND_PCI_QUIRK(0x103c, 0x8c8a, "HP EliteBook 630", ALC236_FIXUP_HP_GPIO_LED), 10861 SND_PCI_QUIRK(0x103c, 0x8c8c, "HP EliteBook 660", ALC236_FIXUP_HP_GPIO_LED), 10862 SND_PCI_QUIRK(0x103c, 0x8c8d, "HP ProBook 440 G11", ALC236_FIXUP_HP_GPIO_LED), 10863 SND_PCI_QUIRK(0x103c, 0x8c8e, "HP ProBook 460 G11", ALC236_FIXUP_HP_GPIO_LED), 10864 SND_PCI_QUIRK(0x103c, 0x8c90, "HP EliteBook 640", ALC236_FIXUP_HP_GPIO_LED), 10865 SND_PCI_QUIRK(0x103c, 0x8c91, "HP EliteBook 660", ALC236_FIXUP_HP_GPIO_LED), 10866 SND_PCI_QUIRK(0x103c, 0x8c96, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10867 SND_PCI_QUIRK(0x103c, 0x8c97, "HP ZBook", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), 10868 SND_PCI_QUIRK(0x103c, 0x8ca1, "HP ZBook Power", ALC236_FIXUP_HP_GPIO_LED), 10869 SND_PCI_QUIRK(0x103c, 0x8ca2, "HP ZBook Power", ALC236_FIXUP_HP_GPIO_LED), 10870 SND_PCI_QUIRK(0x103c, 0x8ca4, "HP ZBook Fury", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10871 SND_PCI_QUIRK(0x103c, 0x8ca7, "HP ZBook Fury", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), 10872 SND_PCI_QUIRK(0x103c, 0x8cf5, "HP ZBook Studio 16", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED), 10731 10873 SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), 10732 10874 SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), … … 10735 10877 SND_PCI_QUIRK(0x1043, 0x10c0, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), 10736 10878 SND_PCI_QUIRK(0x1043, 0x10d0, "ASUS X540LA/X540LJ", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), 10879 SND_PCI_QUIRK(0x1043, 0x10d3, "ASUS K6500ZC", ALC294_FIXUP_ASUS_SPK), 10737 10880 SND_PCI_QUIRK(0x1043, 0x115d, "Asus 1015E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 10738 10881 SND_PCI_QUIRK(0x1043, 0x11c0, "ASUS X556UR", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), … … 10753 10896 SND_PCI_QUIRK(0x1043, 0x1483, "ASUS GU603V", ALC285_FIXUP_ASUS_HEADSET_MIC), 10754 10897 SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), 10898 SND_PCI_QUIRK(0x1043, 0x1533, "ASUS GV302XA", ALC287_FIXUP_CS35L41_I2C_2), 10755 10899 SND_PCI_QUIRK(0x1043, 0x1573, "ASUS GZ301V", ALC285_FIXUP_ASUS_HEADSET_MIC), 10756 10900 SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK), … … 10780 10924 SND_PCI_QUIRK(0x1043, 0x1c62, "ASUS GU603", ALC289_FIXUP_ASUS_GA401), 10781 10925 SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS), 10926 SND_PCI_QUIRK(0x1043, 0x1caf, "ASUS G634JYR/JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS), 10782 10927 SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC), 10783 10928 SND_PCI_QUIRK(0x1043, 0x1d1f, "ASUS ROG Strix G17 2023 (G713PV)", ALC287_FIXUP_CS35L41_I2C_2), 10784 10929 SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401), 10785 10930 SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE), 10931 SND_PCI_QUIRK(0x1043, 0x1da2, "ASUS UP6502ZA/ZD", ALC245_FIXUP_CS35L41_SPI_2), 10786 10932 SND_PCI_QUIRK(0x1043, 0x1e02, "ASUS UX3402ZA", ALC245_FIXUP_CS35L41_SPI_2), 10787 10933 SND_PCI_QUIRK(0x1043, 0x16a3, "ASUS UX3402VA", ALC245_FIXUP_CS35L41_SPI_2), 10934 SND_PCI_QUIRK(0x1043, 0x1f62, "ASUS UX7602ZM", ALC245_FIXUP_CS35L41_SPI_2), 10788 10935 SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502), 10789 SND_PCI_QUIRK(0x1043, 0x1e12, "ASUS UM 3402", ALC287_FIXUP_CS35L41_I2C_2),10936 SND_PCI_QUIRK(0x1043, 0x1e12, "ASUS UM6702RA/RC", ALC287_FIXUP_CS35L41_I2C_2), 10790 10937 SND_PCI_QUIRK(0x1043, 0x1e51, "ASUS Zephyrus M15", ALC294_FIXUP_ASUS_GU502_PINS), 10791 10938 SND_PCI_QUIRK(0x1043, 0x1e5e, "ASUS ROG Strix G513", ALC294_FIXUP_ASUS_G513_PINS), 10792 10939 SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401), 10940 SND_PCI_QUIRK(0x1043, 0x1ee2, "ASUS UM3402", ALC287_FIXUP_CS35L41_I2C_2), 10793 10941 SND_PCI_QUIRK(0x1043, 0x1c52, "ASUS Zephyrus G15 2022", ALC289_FIXUP_ASUS_GA401), 10794 10942 SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401), 10795 10943 SND_PCI_QUIRK(0x1043, 0x1f12, "ASUS UM5302", ALC287_FIXUP_CS35L41_I2C_2), 10944 SND_PCI_QUIRK(0x1043, 0x1f62, "ASUS UX7602ZM", ALC245_FIXUP_CS35L41_SPI_2), 10796 10945 SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401), 10797 10946 SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2), 10798 10947 SND_PCI_QUIRK(0x1043, 0x3a20, "ASUS G614JZR", ALC245_FIXUP_CS35L41_SPI_2), 10799 10948 SND_PCI_QUIRK(0x1043, 0x3a30, "ASUS G814JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2), 10800 SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC2 45_FIXUP_CS35L41_SPI_2),10949 SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS), 10801 10950 SND_PCI_QUIRK(0x1043, 0x3a50, "ASUS G834JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2), 10802 10951 SND_PCI_QUIRK(0x1043, 0x3a60, "ASUS G634JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2), … … 10820 10969 SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE), 10821 10970 SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE), 10971 SND_PCI_QUIRK(0x10ec, 0x119e, "Positivo SU C1400", ALC269_FIXUP_ASPIRE_HEADSET_MIC), 10972 SND_PCI_QUIRK(0x10ec, 0x11bc, "VAIO VJFE-IL", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 10822 10973 SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), 10823 10974 SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), … … 10825 10976 SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), 10826 10977 SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), 10827 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_ HEADSET_MODE),10978 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_ASPIRE_HEADSET_MIC), 10828 10979 SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), 10829 10980 SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP), … … 10832 10983 SND_PCI_QUIRK(0x144d, 0xc18a, "Samsung Galaxy Book Ion (NP930XCJ-K01US)", ALC298_FIXUP_SAMSUNG_AMP), 10833 10984 SND_PCI_QUIRK(0x144d, 0xc1a3, "Samsung Galaxy Book Pro (NP935XDB-KC1SE)", ALC298_FIXUP_SAMSUNG_AMP), 10985 SND_PCI_QUIRK(0x144d, 0xc1a4, "Samsung Galaxy Book Pro 360 (NT935QBD)", ALC298_FIXUP_SAMSUNG_AMP), 10834 10986 SND_PCI_QUIRK(0x144d, 0xc1a6, "Samsung Galaxy Book Pro 360 (NP930QBD)", ALC298_FIXUP_SAMSUNG_AMP), 10835 10987 SND_PCI_QUIRK(0x144d, 0xc740, "Samsung Ativ book 8 (NP870Z5G)", ALC269_FIXUP_ATIV_BOOK_8), … … 10913 11065 SND_PCI_QUIRK(0x1558, 0xa650, "Clevo NP[567]0SN[CD]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10914 11066 SND_PCI_QUIRK(0x1558, 0xa671, "Clevo NP70SN[CDE]", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 11067 SND_PCI_QUIRK(0x1558, 0xa763, "Clevo V54x_6x_TU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10915 11068 SND_PCI_QUIRK(0x1558, 0xb018, "Clevo NP50D[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10916 11069 SND_PCI_QUIRK(0x1558, 0xb019, "Clevo NH77D[BE]Q", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), … … 10920 11073 SND_PCI_QUIRK(0x1558, 0xc022, "Clevo NH77[DC][QW]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), 10921 11074 SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC233_FIXUP_LENOVO_MULTI_CODECS), 11075 SND_PCI_QUIRK(0x17aa, 0x3882, "Lenovo Yoga Pro 7 14APH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN), 10922 11076 SND_PCI_QUIRK(0x17aa, 0x1048, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340), 10923 11077 SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE), … … 10977 11131 SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC), 10978 11132 SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340), 11133 SND_PCI_QUIRK(0x17aa, 0x334b, "Lenovo ThinkCentre M70 Gen5", ALC283_FIXUP_HEADSET_MIC), 10979 11134 SND_PCI_QUIRK(0x17aa, 0x3801, "Lenovo Yoga9 14IAP7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN), 10980 11135 SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga DuetITL 2021", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), … … 10982 11137 SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7), 10983 11138 SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS), 10984 SND_PCI_QUIRK(0x17aa, 0x3820, " Yoga Duet 7 13ITL6", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),11139 SND_PCI_QUIRK(0x17aa, 0x3820, "IdeaPad 330-17IKB 81DM", ALC269_FIXUP_ASPIRE_HEADSET_MIC), 10985 11140 SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS), 10986 11141 SND_PCI_QUIRK(0x17aa, 0x3827, "Ideapad S740", ALC285_FIXUP_IDEAPAD_S740_COEF), … … 10993 11148 SND_PCI_QUIRK(0x17aa, 0x3853, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), 10994 11149 SND_PCI_QUIRK(0x17aa, 0x3855, "Legion 7 16ITHG6", ALC287_FIXUP_LEGION_16ITHG6), 11150 SND_PCI_QUIRK(0x17aa, 0x3865, "Lenovo 13X", ALC287_FIXUP_CS35L41_I2C_2), 11151 SND_PCI_QUIRK(0x17aa, 0x3866, "Lenovo 13X", ALC287_FIXUP_CS35L41_I2C_2), 10995 11152 SND_PCI_QUIRK(0x17aa, 0x3869, "Lenovo Yoga7 14IAL7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN), 10996 11153 SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI), … … 11029 11186 SND_PCI_QUIRK(0x1c06, 0x2013, "Lemote A1802", ALC269_FIXUP_LEMOTE_A1802), 11030 11187 SND_PCI_QUIRK(0x1c06, 0x2015, "Lemote A190X", ALC269_FIXUP_LEMOTE_A190X), 11188 SND_PCI_QUIRK(0x1c6c, 0x122a, "Positivo N14AP7", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 11031 11189 SND_PCI_QUIRK(0x1c6c, 0x1251, "Positivo N14KP6-TG", ALC288_FIXUP_DELL1_MIC_NO_PRESENCE), 11032 11190 SND_PCI_QUIRK(0x1d05, 0x1132, "TongFang PHxTxX1", ALC256_FIXUP_SET_COEF_DEFAULTS), … … 11039 11197 SND_PCI_QUIRK(0x1d05, 0x115c, "TongFang GMxTGxx", ALC269_FIXUP_NO_SHUTUP), 11040 11198 SND_PCI_QUIRK(0x1d05, 0x121b, "TongFang GMxAGxx", ALC269_FIXUP_NO_SHUTUP), 11199 SND_PCI_QUIRK(0x1d05, 0x1387, "TongFang GMxIXxx", ALC2XX_FIXUP_HEADSET_MIC), 11200 SND_PCI_QUIRK(0x1d17, 0x3288, "Haier Boyue G42", ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS), 11041 11201 SND_PCI_QUIRK(0x1d72, 0x1602, "RedmiBook", ALC255_FIXUP_XIAOMI_HEADSET_MIC), 11042 11202 SND_PCI_QUIRK(0x1d72, 0x1701, "XiaomiNotebook Pro", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE), … … 11044 11204 SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC), 11045 11205 SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC), 11206 SND_PCI_QUIRK(0x2782, 0x0214, "VAIO VJFE-CL", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 11207 SND_PCI_QUIRK(0x2782, 0x0232, "CHUWI CoreBook XPro", ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO), 11208 SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME), 11046 11209 SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC), 11047 11210 SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED), … … 11049 11212 SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC295_FIXUP_CHROME_BOOK), 11050 11213 SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 11214 SND_PCI_QUIRK(0xf111, 0x0006, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 11215 SND_PCI_QUIRK(0xf111, 0x0009, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 11051 11216 11052 11217 #if 0 … … 11229 11394 {.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"}, 11230 11395 {.id = ALC285_FIXUP_HP_SPECTRE_X360_EB1, .name = "alc285-hp-spectre-x360-eb1"}, 11396 {.id = ALC285_FIXUP_HP_ENVY_X360, .name = "alc285-hp-envy-x360"}, 11231 11397 {.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"}, 11232 11398 {.id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, .name = "alc287-yoga9-bass-spk-pin"}, … … 11628 11794 {0x17, 0x90170110}, 11629 11795 {0x21, 0x03211020}), 11630 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,11631 {0x14, 0x90170110},11632 {0x21, 0x04211020}),11633 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,11634 {0x14, 0x90170110},11635 {0x21, 0x04211030}),11636 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,11637 ALC295_STANDARD_PINS,11638 {0x17, 0x21014020},11639 {0x18, 0x21a19030}),11640 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,11641 ALC295_STANDARD_PINS,11642 {0x17, 0x21014040},11643 {0x18, 0x21a19050}),11644 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,11645 ALC295_STANDARD_PINS),11646 11796 SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE, 11647 11797 ALC298_STANDARD_PINS, … … 11686 11836 static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = { 11687 11837 #ifdef NOT_USED 11838 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1025, "Acer", ALC2XX_FIXUP_HEADSET_MIC, 11839 {0x19, 0x40000000}), 11688 11840 SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, 11841 {0x19, 0x40000000}, 11842 {0x1b, 0x40000000}), 11843 SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, 11689 11844 {0x19, 0x40000000}, 11690 11845 {0x1b, 0x40000000}), … … 12412 12567 snd_hda_gen_hp_automute(codec, jack); 12413 12568 vref = spec->gen.hp_jack_present ? (PIN_HP | AC_PINCTL_VREF_100) : PIN_HP; 12414 snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, 12415 vref); 12569 snd_hda_set_pin_ctl(codec, 0x1b, vref); 12416 12570 } 12417 12571 … … 12422 12576 if (action == HDA_FIXUP_ACT_PRE_PROBE) { 12423 12577 spec->gen.hp_automute_hook = alc897_hp_automute_hook; 12578 spec->no_shutup_pins = 1; 12579 } 12580 if (action == HDA_FIXUP_ACT_PROBE) { 12581 snd_hda_set_pin_ctl_cache(codec, 0x1a, PIN_IN | AC_PINCTL_VREF_100); 12424 12582 } 12425 12583 } … … 12522 12680 ALC897_FIXUP_HEADSET_MIC_PIN2, 12523 12681 ALC897_FIXUP_UNIS_H3C_X500S, 12682 ALC897_FIXUP_HEADSET_MIC_PIN3, 12524 12683 }; 12525 12684 … … 13158 13317 }, 13159 13318 }, 13319 [ALC897_FIXUP_HEADSET_MIC_PIN3] = { 13320 .type = HDA_FIXUP_PINS, 13321 .v.pins = (const struct hda_pintbl[]) { 13322 { 0x19, 0x03a11050 }, /* use as headset mic */ 13323 { } 13324 }, 13325 }, 13160 13326 #endif 13161 13327 }; … … 13163 13329 static const struct snd_pci_quirk alc662_fixup_tbl[] = { 13164 13330 SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_FIXUP_ASUS_MODE2), 13331 SND_PCI_QUIRK(0x1019, 0x9859, "JP-IK LEAP W502", ALC897_FIXUP_HEADSET_MIC_PIN3), 13165 13332 SND_PCI_QUIRK(0x1025, 0x022f, "Acer Aspire One", ALC662_FIXUP_INV_DMIC), 13166 13333 SND_PCI_QUIRK(0x1025, 0x0241, "Packard Bell DOTS", ALC662_FIXUP_INV_DMIC), … … 13217 13384 SND_PCI_QUIRK(0x17aa, 0x3321, "Lenovo ThinkCentre M70 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN), 13218 13385 SND_PCI_QUIRK(0x17aa, 0x331b, "Lenovo ThinkCentre M90 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN), 13386 SND_PCI_QUIRK(0x17aa, 0x3364, "Lenovo ThinkCentre M90 Gen5", ALC897_FIXUP_HEADSET_MIC_PIN), 13219 13387 SND_PCI_QUIRK(0x17aa, 0x3742, "Lenovo TianYi510Pro-14IOB", ALC897_FIXUP_HEADSET_MIC_PIN2), 13220 13388 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), -
GPL/branches/uniaud32-exp/alsa-kernel/synth/emux/soundfont.c
r697 r760 704 704 struct soundfont_sample_info sample_info; 705 705 struct snd_sf_sample *sp; 706 long off;707 706 708 707 /* patch must be opened */ … … 714 713 return -EINVAL; 715 714 715 if (count < (long)sizeof(sample_info)) { 716 return -EINVAL; 717 } 716 718 if (copy_from_user(&sample_info, data, sizeof(sample_info))) 717 719 return -EFAULT; 718 719 off = sizeof(sample_info); 720 721 if (sample_info.size != (count-off)/2) 720 data += sizeof(sample_info); 721 count -= sizeof(sample_info); 722 723 // SoundFont uses S16LE samples. 724 if (sample_info.size * 2 != count) 722 725 return -EINVAL; 723 726 … … 747 750 rc = sflist->callback.sample_new 748 751 (sflist->callback.private_data, sp, sflist->memhdr, 749 data + off, count - off);752 data, count); 750 753 if (rc < 0) { 751 754 sf_sample_delete(sflist, sf, sp); … … 960 963 if (copy_from_user(&patch, data, sizeof(patch))) 961 964 return -EFAULT; 962 963 965 count -= sizeof(patch); 964 966 data += sizeof(patch); 967 968 if ((patch.len << (patch.mode & WAVE_16_BITS ? 1 : 0)) != count) 969 return -EINVAL; 965 970 966 971 sf = newsf(sflist, SNDRV_SFNT_PAT_TYPE_GUS|SNDRV_SFNT_PAT_SHARED, NULL); -
GPL/branches/uniaud32-exp/include/linux/pci.h
r753 r760 794 794 #define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL) 795 795 796 /** 797 * PCI_DEVICE_DATA - macro used to describe a specific PCI device in very short form 798 * @vend: the vendor name (without PCI_VENDOR_ID_ prefix) 799 * @dev: the device name (without PCI_DEVICE_ID_<vend>_ prefix) 800 * @data: the driver data to be filled 801 * 802 * This macro is used to create a struct pci_device_id that matches a 803 * specific PCI device. The subvendor, and subdevice fields will be set 804 * to PCI_ANY_ID. 805 */ 806 #define PCI_DEVICE_DATA(vend, dev, data) \ 807 .vendor = PCI_VENDOR_ID_##vend, .device = PCI_DEVICE_ID_##vend##_##dev, \ 808 .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0, \ 809 .driver_data = (unsigned long)(data) 810 796 811 #endif /* LINUX_PCI_H */ -
GPL/branches/uniaud32-exp/include/linux/pci_ids.h
r615 r760 2951 2951 #define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2 2952 2952 #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 2953 #define PCI_DEVICE_ID_INTEL_HDA_ARL 0x7728 2953 2954 #define PCI_DEVICE_ID_INTEL_SCH_LPC 0x8119 2954 2955 #define PCI_DEVICE_ID_INTEL_SCH_IDE 0x811a
Note:
See TracChangeset
for help on using the changeset viewer.