Merge branch 'for-linus' into for-next
Back-merge from for-linus just to make the further development easier.
This commit is contained in:
@@ -907,20 +907,23 @@ static int azx_resume(struct device *dev)
|
||||
struct snd_card *card = dev_get_drvdata(dev);
|
||||
struct azx *chip;
|
||||
struct hda_intel *hda;
|
||||
struct hdac_bus *bus;
|
||||
|
||||
if (!card)
|
||||
return 0;
|
||||
|
||||
chip = card->private_data;
|
||||
hda = container_of(chip, struct hda_intel, chip);
|
||||
bus = azx_bus(chip);
|
||||
if (chip->disabled || hda->init_failed || !chip->running)
|
||||
return 0;
|
||||
|
||||
if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL
|
||||
&& hda->need_i915_power) {
|
||||
snd_hdac_display_power(azx_bus(chip), true);
|
||||
snd_hdac_i915_set_bclk(azx_bus(chip));
|
||||
if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) {
|
||||
snd_hdac_display_power(bus, true);
|
||||
if (hda->need_i915_power)
|
||||
snd_hdac_i915_set_bclk(bus);
|
||||
}
|
||||
|
||||
if (chip->msi)
|
||||
if (pci_enable_msi(pci) < 0)
|
||||
chip->msi = 0;
|
||||
@@ -930,6 +933,11 @@ static int azx_resume(struct device *dev)
|
||||
|
||||
hda_intel_init_chip(chip, true);
|
||||
|
||||
/* power down again for link-controlled chips */
|
||||
if ((chip->driver_caps & AZX_DCAPS_I915_POWERWELL) &&
|
||||
!hda->need_i915_power)
|
||||
snd_hdac_display_power(bus, false);
|
||||
|
||||
snd_power_change_state(card, SNDRV_CTL_POWER_D0);
|
||||
|
||||
trace_azx_resume(chip);
|
||||
@@ -1009,6 +1017,7 @@ static int azx_runtime_resume(struct device *dev)
|
||||
|
||||
chip = card->private_data;
|
||||
hda = container_of(chip, struct hda_intel, chip);
|
||||
bus = azx_bus(chip);
|
||||
if (chip->disabled || hda->init_failed)
|
||||
return 0;
|
||||
|
||||
@@ -1016,15 +1025,9 @@ static int azx_runtime_resume(struct device *dev)
|
||||
return 0;
|
||||
|
||||
if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) {
|
||||
bus = azx_bus(chip);
|
||||
if (hda->need_i915_power) {
|
||||
snd_hdac_display_power(bus, true);
|
||||
snd_hdac_display_power(bus, true);
|
||||
if (hda->need_i915_power)
|
||||
snd_hdac_i915_set_bclk(bus);
|
||||
} else {
|
||||
/* toggle codec wakeup bit for STATESTS read */
|
||||
snd_hdac_set_codec_wakeup(bus, true);
|
||||
snd_hdac_set_codec_wakeup(bus, false);
|
||||
}
|
||||
}
|
||||
|
||||
/* Read STATESTS before controller reset */
|
||||
@@ -1044,6 +1047,11 @@ static int azx_runtime_resume(struct device *dev)
|
||||
azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) &
|
||||
~STATESTS_INT_MASK);
|
||||
|
||||
/* power down again for link-controlled chips */
|
||||
if ((chip->driver_caps & AZX_DCAPS_I915_POWERWELL) &&
|
||||
!hda->need_i915_power)
|
||||
snd_hdac_display_power(bus, false);
|
||||
|
||||
trace_azx_runtime_resume(chip);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -4828,7 +4828,7 @@ enum {
|
||||
ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
ALC292_FIXUP_TPT440_DOCK,
|
||||
ALC292_FIXUP_TPT440,
|
||||
ALC283_FIXUP_BXBT2807_MIC,
|
||||
ALC283_FIXUP_HEADSET_MIC,
|
||||
ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED,
|
||||
ALC282_FIXUP_ASPIRE_V5_PINS,
|
||||
ALC280_FIXUP_HP_GPIO4,
|
||||
@@ -4855,6 +4855,7 @@ enum {
|
||||
ALC221_FIXUP_HP_FRONT_MIC,
|
||||
ALC292_FIXUP_TPT460,
|
||||
ALC298_FIXUP_SPK_VOLUME,
|
||||
ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER,
|
||||
};
|
||||
|
||||
static const struct hda_fixup alc269_fixups[] = {
|
||||
@@ -5323,7 +5324,7 @@ static const struct hda_fixup alc269_fixups[] = {
|
||||
.chained = true,
|
||||
.chain_id = ALC292_FIXUP_TPT440_DOCK,
|
||||
},
|
||||
[ALC283_FIXUP_BXBT2807_MIC] = {
|
||||
[ALC283_FIXUP_HEADSET_MIC] = {
|
||||
.type = HDA_FIXUP_PINS,
|
||||
.v.pins = (const struct hda_pintbl[]) {
|
||||
{ 0x19, 0x04a110f0 },
|
||||
@@ -5518,6 +5519,15 @@ static const struct hda_fixup alc269_fixups[] = {
|
||||
.chained = true,
|
||||
.chain_id = ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
},
|
||||
[ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
|
||||
.type = HDA_FIXUP_PINS,
|
||||
.v.pins = (const struct hda_pintbl[]) {
|
||||
{ 0x1b, 0x90170151 },
|
||||
{ }
|
||||
},
|
||||
.chained = true,
|
||||
.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
|
||||
},
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
@@ -5562,6 +5572,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x1028, 0x06df, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
|
||||
SND_PCI_QUIRK(0x1028, 0x06e0, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
|
||||
SND_PCI_QUIRK(0x1028, 0x0704, "Dell XPS 13 9350", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
|
||||
SND_PCI_QUIRK(0x1028, 0x0706, "Dell Inspiron 7559", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
|
||||
SND_PCI_QUIRK(0x1028, 0x0725, "Dell Inspiron 3162", ALC255_FIXUP_DELL_SPK_NOISE),
|
||||
SND_PCI_QUIRK(0x1028, 0x075b, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
|
||||
SND_PCI_QUIRK(0x1028, 0x075d, "Dell AIO", ALC298_FIXUP_SPK_VOLUME),
|
||||
@@ -5653,7 +5664,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
|
||||
SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
|
||||
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
|
||||
SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_BXBT2807_MIC),
|
||||
SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1462, 0xb120, "MSI Cubi MS-B120", ALC283_FIXUP_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE),
|
||||
SND_PCI_QUIRK(0x17aa, 0x215e, "Thinkpad L512", ALC269_FIXUP_SKU_IGNORE),
|
||||
SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE),
|
||||
@@ -5796,6 +5808,13 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
|
||||
{0x14, 0x90170110}, \
|
||||
{0x15, 0x0221401f}
|
||||
|
||||
#define ALC295_STANDARD_PINS \
|
||||
{0x12, 0xb7a60130}, \
|
||||
{0x14, 0x90170110}, \
|
||||
{0x17, 0x21014020}, \
|
||||
{0x18, 0x21a19030}, \
|
||||
{0x21, 0x04211020}
|
||||
|
||||
#define ALC298_STANDARD_PINS \
|
||||
{0x12, 0x90a60130}, \
|
||||
{0x21, 0x03211020}
|
||||
@@ -5896,6 +5915,14 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
|
||||
{0x12, 0x90a60170},
|
||||
{0x14, 0x90170120},
|
||||
{0x21, 0x02211030}),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell Inspiron 5468", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
{0x12, 0x90a60180},
|
||||
{0x14, 0x90170120},
|
||||
{0x21, 0x02211030}),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
{0x12, 0xb7a60130},
|
||||
{0x14, 0x90170110},
|
||||
{0x21, 0x02211020}),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
ALC256_STANDARD_PINS),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4,
|
||||
@@ -6007,6 +6034,8 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
|
||||
SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
ALC292_STANDARD_PINS,
|
||||
{0x13, 0x90a60140}),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
ALC295_STANDARD_PINS),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
|
||||
ALC298_STANDARD_PINS,
|
||||
{0x17, 0x90170110}),
|
||||
|
Reference in New Issue
Block a user