Merge branch 'for-linus' into for-next
Merge 5.5-rc devel branch back for applying the conflicting USB-audio fix. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Коммит
5d8398aa59
|
@ -282,12 +282,13 @@ enum {
|
|||
|
||||
/* quirks for old Intel chipsets */
|
||||
#define AZX_DCAPS_INTEL_ICH \
|
||||
(AZX_DCAPS_OLD_SSYNC | AZX_DCAPS_NO_ALIGN_BUFSIZE)
|
||||
(AZX_DCAPS_OLD_SSYNC | AZX_DCAPS_NO_ALIGN_BUFSIZE |\
|
||||
AZX_DCAPS_SYNC_WRITE)
|
||||
|
||||
/* quirks for Intel PCH */
|
||||
#define AZX_DCAPS_INTEL_PCH_BASE \
|
||||
(AZX_DCAPS_NO_ALIGN_BUFSIZE | AZX_DCAPS_COUNT_LPIB_DELAY |\
|
||||
AZX_DCAPS_SNOOP_TYPE(SCH))
|
||||
AZX_DCAPS_SNOOP_TYPE(SCH) | AZX_DCAPS_SYNC_WRITE)
|
||||
|
||||
/* PCH up to IVB; no runtime PM; bind with i915 gfx */
|
||||
#define AZX_DCAPS_INTEL_PCH_NOPM \
|
||||
|
@ -302,13 +303,13 @@ enum {
|
|||
#define AZX_DCAPS_INTEL_HASWELL \
|
||||
(/*AZX_DCAPS_ALIGN_BUFSIZE |*/ AZX_DCAPS_COUNT_LPIB_DELAY |\
|
||||
AZX_DCAPS_PM_RUNTIME | AZX_DCAPS_I915_COMPONENT |\
|
||||
AZX_DCAPS_SNOOP_TYPE(SCH))
|
||||
AZX_DCAPS_SNOOP_TYPE(SCH) | AZX_DCAPS_SYNC_WRITE)
|
||||
|
||||
/* Broadwell HDMI can't use position buffer reliably, force to use LPIB */
|
||||
#define AZX_DCAPS_INTEL_BROADWELL \
|
||||
(/*AZX_DCAPS_ALIGN_BUFSIZE |*/ AZX_DCAPS_POSFIX_LPIB |\
|
||||
AZX_DCAPS_PM_RUNTIME | AZX_DCAPS_I915_COMPONENT |\
|
||||
AZX_DCAPS_SNOOP_TYPE(SCH))
|
||||
AZX_DCAPS_SNOOP_TYPE(SCH) | AZX_DCAPS_SYNC_WRITE)
|
||||
|
||||
#define AZX_DCAPS_INTEL_BAYTRAIL \
|
||||
(AZX_DCAPS_INTEL_PCH_BASE | AZX_DCAPS_I915_COMPONENT)
|
||||
|
@ -1412,7 +1413,17 @@ static bool atpx_present(void)
|
|||
acpi_handle dhandle, atpx_handle;
|
||||
acpi_status status;
|
||||
|
||||
while ((pdev = pci_get_class(PCI_BASE_CLASS_DISPLAY << 16, pdev)) != NULL) {
|
||||
while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) {
|
||||
dhandle = ACPI_HANDLE(&pdev->dev);
|
||||
if (dhandle) {
|
||||
status = acpi_get_handle(dhandle, "ATPX", &atpx_handle);
|
||||
if (!ACPI_FAILURE(status)) {
|
||||
pci_dev_put(pdev);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) {
|
||||
dhandle = ACPI_HANDLE(&pdev->dev);
|
||||
if (dhandle) {
|
||||
status = acpi_get_handle(dhandle, "ATPX", &atpx_handle);
|
||||
|
|
|
@ -430,6 +430,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
|
|||
break;
|
||||
case 0x10ec0899:
|
||||
case 0x10ec0900:
|
||||
case 0x10ec0b00:
|
||||
case 0x10ec1168:
|
||||
case 0x10ec1220:
|
||||
alc_update_coef_idx(codec, 0x7, 1<<1, 0);
|
||||
|
@ -501,6 +502,7 @@ static void alc_shutup_pins(struct hda_codec *codec)
|
|||
struct alc_spec *spec = codec->spec;
|
||||
|
||||
switch (codec->core.vendor_id) {
|
||||
case 0x10ec0283:
|
||||
case 0x10ec0286:
|
||||
case 0x10ec0288:
|
||||
case 0x10ec0298:
|
||||
|
@ -2525,6 +2527,7 @@ static int patch_alc882(struct hda_codec *codec)
|
|||
case 0x10ec0882:
|
||||
case 0x10ec0885:
|
||||
case 0x10ec0900:
|
||||
case 0x10ec0b00:
|
||||
case 0x10ec1220:
|
||||
break;
|
||||
default:
|
||||
|
@ -5905,9 +5908,12 @@ enum {
|
|||
ALC256_FIXUP_ASUS_HEADSET_MIC,
|
||||
ALC256_FIXUP_ASUS_MIC_NO_PRESENCE,
|
||||
ALC299_FIXUP_PREDATOR_SPK,
|
||||
ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC,
|
||||
ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE,
|
||||
ALC294_FIXUP_ASUS_INTSPK_GPIO,
|
||||
ALC289_FIXUP_DELL_SPK2,
|
||||
ALC289_FIXUP_DUAL_SPK,
|
||||
ALC294_FIXUP_SPK2_TO_DAC1,
|
||||
ALC294_FIXUP_ASUS_DUAL_SPK,
|
||||
|
||||
};
|
||||
|
||||
static const struct hda_fixup alc269_fixups[] = {
|
||||
|
@ -6989,16 +6995,6 @@ static const struct hda_fixup alc269_fixups[] = {
|
|||
{ }
|
||||
}
|
||||
},
|
||||
[ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC] = {
|
||||
.type = HDA_FIXUP_PINS,
|
||||
.v.pins = (const struct hda_pintbl[]) {
|
||||
{ 0x14, 0x411111f0 }, /* disable confusing internal speaker */
|
||||
{ 0x19, 0x04a11150 }, /* use as headset mic, without its own jack detect */
|
||||
{ }
|
||||
},
|
||||
.chained = true,
|
||||
.chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
|
||||
},
|
||||
[ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE] = {
|
||||
.type = HDA_FIXUP_PINS,
|
||||
.v.pins = (const struct hda_pintbl[]) {
|
||||
|
@ -7009,13 +7005,35 @@ static const struct hda_fixup alc269_fixups[] = {
|
|||
.chained = true,
|
||||
.chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE
|
||||
},
|
||||
[ALC294_FIXUP_ASUS_INTSPK_GPIO] = {
|
||||
[ALC289_FIXUP_DELL_SPK2] = {
|
||||
.type = HDA_FIXUP_PINS,
|
||||
.v.pins = (const struct hda_pintbl[]) {
|
||||
{ 0x17, 0x90170130 }, /* bass spk */
|
||||
{ }
|
||||
},
|
||||
.chained = true,
|
||||
.chain_id = ALC269_FIXUP_DELL4_MIC_NO_PRESENCE
|
||||
},
|
||||
[ALC289_FIXUP_DUAL_SPK] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc285_fixup_speaker2_to_dac1,
|
||||
.chained = true,
|
||||
.chain_id = ALC289_FIXUP_DELL_SPK2
|
||||
},
|
||||
[ALC294_FIXUP_SPK2_TO_DAC1] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc285_fixup_speaker2_to_dac1,
|
||||
.chained = true,
|
||||
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
|
||||
},
|
||||
[ALC294_FIXUP_ASUS_DUAL_SPK] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
/* The GPIO must be pulled to initialize the AMP */
|
||||
.v.func = alc_fixup_gpio4,
|
||||
.chained = true,
|
||||
.chain_id = ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC
|
||||
.chain_id = ALC294_FIXUP_SPK2_TO_DAC1
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
|
@ -7088,6 +7106,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x1028, 0x08ad, "Dell WYSE AIO", ALC225_FIXUP_DELL_WYSE_AIO_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x08ae, "Dell WYSE NB", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x0935, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
|
||||
SND_PCI_QUIRK(0x1028, 0x097e, "Dell Precision", ALC289_FIXUP_DUAL_SPK),
|
||||
SND_PCI_QUIRK(0x1028, 0x097d, "Dell Precision", ALC289_FIXUP_DUAL_SPK),
|
||||
SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
|
||||
|
@ -7175,7 +7195,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
|
||||
SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A),
|
||||
SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
|
||||
SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_GPIO),
|
||||
SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK),
|
||||
SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
|
||||
SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC),
|
||||
|
@ -9245,6 +9265,7 @@ static const struct hda_device_id snd_hda_id_realtek[] = {
|
|||
HDA_CODEC_ENTRY(0x10ec0892, "ALC892", patch_alc662),
|
||||
HDA_CODEC_ENTRY(0x10ec0899, "ALC898", patch_alc882),
|
||||
HDA_CODEC_ENTRY(0x10ec0900, "ALC1150", patch_alc882),
|
||||
HDA_CODEC_ENTRY(0x10ec0b00, "ALCS1200A", patch_alc882),
|
||||
HDA_CODEC_ENTRY(0x10ec1168, "ALC1220", patch_alc882),
|
||||
HDA_CODEC_ENTRY(0x10ec1220, "ALC1220", patch_alc882),
|
||||
{} /* terminator */
|
||||
|
|
|
@ -647,6 +647,7 @@ static int snd_vt1724_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate,
|
|||
unsigned long flags;
|
||||
unsigned char mclk_change;
|
||||
unsigned int i, old_rate;
|
||||
bool call_set_rate = false;
|
||||
|
||||
if (rate > ice->hw_rates->list[ice->hw_rates->count - 1])
|
||||
return -EINVAL;
|
||||
|
@ -670,7 +671,7 @@ static int snd_vt1724_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate,
|
|||
* setting clock rate for internal clock mode */
|
||||
old_rate = ice->get_rate(ice);
|
||||
if (force || (old_rate != rate))
|
||||
ice->set_rate(ice, rate);
|
||||
call_set_rate = true;
|
||||
else if (rate == ice->cur_rate) {
|
||||
spin_unlock_irqrestore(&ice->reg_lock, flags);
|
||||
return 0;
|
||||
|
@ -678,12 +679,14 @@ static int snd_vt1724_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate,
|
|||
}
|
||||
|
||||
ice->cur_rate = rate;
|
||||
spin_unlock_irqrestore(&ice->reg_lock, flags);
|
||||
|
||||
if (call_set_rate)
|
||||
ice->set_rate(ice, rate);
|
||||
|
||||
/* setting master clock */
|
||||
mclk_change = ice->set_mclk(ice, rate);
|
||||
|
||||
spin_unlock_irqrestore(&ice->reg_lock, flags);
|
||||
|
||||
if (mclk_change && ice->gpio.i2s_mclk_changed)
|
||||
ice->gpio.i2s_mclk_changed(ice);
|
||||
if (ice->gpio.set_pro_rate)
|
||||
|
|
|
@ -519,9 +519,9 @@ static int set_format(struct snd_usb_substream *subs, struct audioformat *fmt)
|
|||
if (WARN_ON(!iface))
|
||||
return -EINVAL;
|
||||
alts = usb_altnum_to_altsetting(iface, fmt->altsetting);
|
||||
altsd = get_iface_desc(alts);
|
||||
if (WARN_ON(altsd->bAlternateSetting != fmt->altsetting))
|
||||
if (WARN_ON(!alts))
|
||||
return -EINVAL;
|
||||
altsd = get_iface_desc(alts);
|
||||
|
||||
if (fmt == subs->cur_audiofmt && !subs->need_setup_fmt)
|
||||
return 0;
|
||||
|
|
|
@ -1397,6 +1397,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip)
|
|||
case USB_ID(0x04D8, 0xFEEA): /* Benchmark DAC1 Pre */
|
||||
case USB_ID(0x0556, 0x0014): /* Phoenix Audio TMX320VC */
|
||||
case USB_ID(0x05A3, 0x9420): /* ELP HD USB Camera */
|
||||
case USB_ID(0x05a7, 0x1020): /* Bose Companion 5 */
|
||||
case USB_ID(0x074D, 0x3553): /* Outlaw RR2150 (Micronas UAC3553B) */
|
||||
case USB_ID(0x1395, 0x740a): /* Sennheiser DECT */
|
||||
case USB_ID(0x1901, 0x0191): /* GE B850V3 CP2114 audio interface */
|
||||
|
|
Загрузка…
Ссылка в новой задаче