From: Takashi Iwai <[email protected]>
commit 4bfd6247fa9164c8e193a55ef9c0ea3ee22f82d8 upstream.
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: b529ef2464ad ("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]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
sound/pci/hda/hda_intel.c | 2 --
sound/pci/hda/patch_via.c | 13 +++++++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2328,8 +2328,6 @@ static struct snd_pci_quirk power_save_b
SND_PCI_QUIRK(0x1849, 0x7662, "Asrock H81M-HDS", 0),
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
SND_PCI_QUIRK(0x1043, 0x8733, "Asus Prime X370-Pro", 0),
- /* https://bugzilla.redhat.com/show_bug.cgi?id=1581607 */
- SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", 0),
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
SND_PCI_QUIRK(0x1558, 0x6504, "Clevo W65_67SB", 0),
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -1015,6 +1015,7 @@ static const struct hda_verb vt1802_init
enum {
VIA_FIXUP_INTMIC_BOOST,
VIA_FIXUP_ASUS_G75,
+ VIA_FIXUP_POWER_SAVE,
};
static void via_fixup_intmic_boost(struct hda_codec *codec,
@@ -1024,6 +1025,13 @@ static void via_fixup_intmic_boost(struc
override_mic_boost(codec, 0x30, 0, 2, 40);
}
+static void via_fixup_power_save(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ if (action == HDA_FIXUP_ACT_PRE_PROBE)
+ codec->power_save_node = 0;
+}
+
static const struct hda_fixup via_fixups[] = {
[VIA_FIXUP_INTMIC_BOOST] = {
.type = HDA_FIXUP_FUNC,
@@ -1038,11 +1046,16 @@ static const struct hda_fixup via_fixups
{ }
}
},
+ [VIA_FIXUP_POWER_SAVE] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = via_fixup_power_save,
+ },
};
static const struct snd_pci_quirk vt2002p_fixups[] = {
SND_PCI_QUIRK(0x1043, 0x1487, "Asus G75", VIA_FIXUP_ASUS_G75),
SND_PCI_QUIRK(0x1043, 0x8532, "Asus X202E", VIA_FIXUP_INTMIC_BOOST),
+ SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", VIA_FIXUP_POWER_SAVE),
{}
};
Hi!
> From: Takashi Iwai <[email protected]>
>
> commit 4bfd6247fa9164c8e193a55ef9c0ea3ee22f82d8 upstream.
>
> 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.
From changelog it looks like we do not need this for 4.19.
Best regards,
Pavel
--
http://www.livejournal.com/~pavelmachek
On Wed, 13 Jan 2021 12:49:34 +0100,
Pavel Machek wrote:
>
> Hi!
>
> > From: Takashi Iwai <[email protected]>
> >
> > commit 4bfd6247fa9164c8e193a55ef9c0ea3ee22f82d8 upstream.
> >
> > 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.
>
> From changelog it looks like we do not need this for 4.19.
The patch fixes the runtime PM problem that has existed for long time,
and that's the root cause of the issue mentioned in the Fixes tag
(that just papered over), so it still makes sense to backport as long
as it can be applied.
thanks,
Takashi