Skip to content

Commit 4bfd624

Browse files
committed
ALSA: hda/via: Fix runtime PM for Clevo W35xSS
Clevo W35xSS_370SS with VIA codec has had the runtime PM problem that looses the power state of some nodes after the runtime resume. This was worked around by disabling the default runtime PM via a denylist entry. Since 5.10.x made the runtime PM applied (casually) even though it's disabled in the denylist, this problem was revisited. The result was that disabling power_save_node feature suffices for the runtime PM problem. This patch implements the disablement of power_save_node feature in VIA codec for the device. It also drops the former denylist entry, too, as the runtime PM should work in the codec side properly now. Fixes: b529ef2 ("ALSA: hda: Add Clevo W35xSS_370SS to the power_save blacklist") Reported-by: Christian Labisch <[email protected]> Cc: <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Takashi Iwai <[email protected]>
1 parent b0e1306 commit 4bfd624

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

sound/pci/hda/hda_intel.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2220,8 +2220,6 @@ static const struct snd_pci_quirk power_save_denylist[] = {
22202220
SND_PCI_QUIRK(0x1849, 0x7662, "Asrock H81M-HDS", 0),
22212221
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
22222222
SND_PCI_QUIRK(0x1043, 0x8733, "Asus Prime X370-Pro", 0),
2223-
/* https://bugzilla.redhat.com/show_bug.cgi?id=1581607 */
2224-
SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", 0),
22252223
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
22262224
SND_PCI_QUIRK(0x1558, 0x6504, "Clevo W65_67SB", 0),
22272225
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */

sound/pci/hda/patch_via.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,7 @@ static const struct hda_verb vt1802_init_verbs[] = {
10021002
enum {
10031003
VIA_FIXUP_INTMIC_BOOST,
10041004
VIA_FIXUP_ASUS_G75,
1005+
VIA_FIXUP_POWER_SAVE,
10051006
};
10061007

10071008
static void via_fixup_intmic_boost(struct hda_codec *codec,
@@ -1011,6 +1012,13 @@ static void via_fixup_intmic_boost(struct hda_codec *codec,
10111012
override_mic_boost(codec, 0x30, 0, 2, 40);
10121013
}
10131014

1015+
static void via_fixup_power_save(struct hda_codec *codec,
1016+
const struct hda_fixup *fix, int action)
1017+
{
1018+
if (action == HDA_FIXUP_ACT_PRE_PROBE)
1019+
codec->power_save_node = 0;
1020+
}
1021+
10141022
static const struct hda_fixup via_fixups[] = {
10151023
[VIA_FIXUP_INTMIC_BOOST] = {
10161024
.type = HDA_FIXUP_FUNC,
@@ -1025,11 +1033,16 @@ static const struct hda_fixup via_fixups[] = {
10251033
{ }
10261034
}
10271035
},
1036+
[VIA_FIXUP_POWER_SAVE] = {
1037+
.type = HDA_FIXUP_FUNC,
1038+
.v.func = via_fixup_power_save,
1039+
},
10281040
};
10291041

10301042
static const struct snd_pci_quirk vt2002p_fixups[] = {
10311043
SND_PCI_QUIRK(0x1043, 0x1487, "Asus G75", VIA_FIXUP_ASUS_G75),
10321044
SND_PCI_QUIRK(0x1043, 0x8532, "Asus X202E", VIA_FIXUP_INTMIC_BOOST),
1045+
SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", VIA_FIXUP_POWER_SAVE),
10331046
{}
10341047
};
10351048

0 commit comments

Comments
 (0)