All of lore.kernel.org
 help / color / mirror / Atom feed
From: waldek andrukiewicz <waldek.andrukiewicz@protonmail.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: stable@vger.kernel.org, regressions@lists.linux.dev,
	Stefan Binding <sbinding@opensource.cirrus.com>,
	Richard Fitzgerald <rf@opensource.cirrus.com>,
	Lucas Tanure <tanureal@opensource.cirrus.com>
Subject: Re: i2c-CLSA0100:00-cs35l41-hda.1: System Suspend not supported
Date: Wed, 04 Jan 2023 17:37:21 +0000	[thread overview]
Message-ID: <1fb50261-8cf0-2953-2c1a-f7e16cd12d5d@protonmail.com> (raw)
In-Reply-To: <874jt6ps04.wl-tiwai@suse.de>


On 04.01.23 10:29, Takashi Iwai wrote:
> [ adding Cirrus people to Cc ]
>
> On Tue, 03 Jan 2023 21:39:42 +0100,
> waldek andrukiewicz wrote:
>> Hello,
>>
>> I am running Manjaro, after upgrading from kernel 6.0.15 to 6.1.1 (
>> https://gitlab.manjaro.org/packages/core/linux61) I have noticed that suspend
>> stopped working, what I can see in the logs is the following issue which IMO
>> points to cs35l41
>>
>> Machine:
>>    Type: Laptop System: LENOVO product: 82N6 v: Legion 7 16ACHg6
>>
>> journalctl output below:
>>
>> Jan 02 21:52:54 legion16 systemd[1]: Starting System Suspend...
>> Jan 02 21:52:54 legion16 wpa_supplicant[1193]: wlp4s0: CTRL-EVENT-DSCP-POLICY
>> clear_all
>> Jan 02 21:52:54 legion16 systemd-sleep[2912]: Entering sleep state
>> 'suspend'...
>> Jan 02 21:52:54 legion16 kernel: PM: suspend entry (deep)
>> Jan 02 21:52:54 legion16 kernel: Filesystems sync: 0.008 seconds
>> Jan 02 21:52:54 legion16 wpa_supplicant[1193]: wlp4s0: CTRL-EVENT-DSCP-POLICY
>> clear_all
>> Jan 02 21:52:54 legion16 wpa_supplicant[1193]: nl80211: deinit ifname=wlp4s0
>> disabled_11b_rates=0
>> Jan 02 21:52:54 legion16 plasmashell[1770]: qml: [DEBUG] - onNewData
>> Jan 02 21:52:54 legion16 kernel: Freezing user space processes ... (elapsed
>> 0.002 seconds) done.
>> Jan 02 21:52:54 legion16 kernel: OOM killer disabled.
>> Jan 02 21:52:54 legion16 kernel: Freezing remaining freezable tasks ...
>> (elapsed 0.001 seconds) done.
>> Jan 02 21:52:54 legion16 kernel: printk: Suspending console(s) (use
>> no_console_suspend to debug)
>> Jan 02 21:52:54 legion16 kernel: cs35l41-hda i2c-CLSA0100:00-cs35l41-hda.1:
>> System Suspend not supported
>> Jan 02 21:52:54 legion16 kernel: cs35l41-hda i2c-CLSA0100:00-cs35l41-hda.0:
>> System Suspend not supported
>> Jan 02 21:52:54 legion16 kernel: cs35l41-hda i2c-CLSA0100:00-cs35l41-hda.1:
>> PM: dpm_run_callback(): cs35l41_system_suspend+0x0/0xd0
>> [snd_hda_scodec_cs35l41] returns -22
> Indeed the suspend isn't supported for this chip wrt the specific
> model/config, but it's a bad behavior to block the whole system
> suspend due to that.
>
> Could you try the patch below?
>
>
> Takashi
>
> -- 8< --
> diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
> index 91842c0c8c74..6322157c7ea2 100644
> --- a/sound/pci/hda/cs35l41_hda.c
> +++ b/sound/pci/hda/cs35l41_hda.c
> @@ -598,8 +598,8 @@ static int cs35l41_system_suspend(struct device *dev)
>   	dev_dbg(cs35l41->dev, "System Suspend\n");
>
>   	if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST_NO_VSPK_SWITCH) {
> -		dev_err(cs35l41->dev, "System Suspend not supported\n");
> -		return -EINVAL;
> +		dev_err_once(cs35l41->dev, "System Suspend not supported\n");
> +		return 0; /* don't block the whole system suspend */
>   	}
>
>   	ret = pm_runtime_force_suspend(dev);
> @@ -624,8 +624,8 @@ static int cs35l41_system_resume(struct device *dev)
>   	dev_dbg(cs35l41->dev, "System Resume\n");
>
>   	if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST_NO_VSPK_SWITCH) {
> -		dev_err(cs35l41->dev, "System Resume not supported\n");
> -		return -EINVAL;
> +		dev_err_once(cs35l41->dev, "System Resume not supported\n");
> +		return 0; /* don't block the whole system resume */
>   	}
>
>   	if (cs35l41->reset_gpio) {
> @@ -647,6 +647,15 @@ static int cs35l41_system_resume(struct device *dev)
>   	return ret;
>   }
>
> +static int cs35l41_runtime_idle(struct device *dev)
> +{
> +	struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev);
> +
> +	if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST_NO_VSPK_SWITCH)
> +		return -EBUSY; /* suspend not supported yet on this model */
> +	return 0;
> +}
> +
>   static int cs35l41_runtime_suspend(struct device *dev)
>   {
>   	struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev);
> @@ -1536,7 +1545,8 @@ void cs35l41_hda_remove(struct device *dev)
>   EXPORT_SYMBOL_NS_GPL(cs35l41_hda_remove, SND_HDA_SCODEC_CS35L41);
>
>   const struct dev_pm_ops cs35l41_hda_pm_ops = {
> -	RUNTIME_PM_OPS(cs35l41_runtime_suspend, cs35l41_runtime_resume, NULL)
> +	RUNTIME_PM_OPS(cs35l41_runtime_suspend, cs35l41_runtime_resume,
> +		       cs35l41_runtime_idle)
>   	SYSTEM_SLEEP_PM_OPS(cs35l41_system_suspend, cs35l41_system_resume)
>   };
>   EXPORT_SYMBOL_NS_GPL(cs35l41_hda_pm_ops, SND_HDA_SCODEC_CS35L41);


Hi Takashi,

Thank you for your prompt reply, I decided to patch the Manjaro 6.1.3
kernel and in case the issue persisted, try the same with mainline but
it helped. I can suspend/resume the laptop same as I could with pre 6.1
kernels.

If you are interested in any logs from my system let me know.

Best Regards,

Waldek Andrukiewicz



  reply	other threads:[~2023-01-04 17:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4262e3c4-6169-bbd2-e918-16b06f6994bc@protonmail.com>
2023-01-04  9:29 ` i2c-CLSA0100:00-cs35l41-hda.1: System Suspend not supported Takashi Iwai
2023-01-04 17:37   ` waldek andrukiewicz [this message]
2023-01-03 20:45 Waldek Andrukiewicz
2023-01-04  2:18 ` Bagas Sanjaya
2023-01-04 20:05   ` Waldek Andrukiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1fb50261-8cf0-2953-2c1a-f7e16cd12d5d@protonmail.com \
    --to=waldek.andrukiewicz@protonmail.com \
    --cc=regressions@lists.linux.dev \
    --cc=rf@opensource.cirrus.com \
    --cc=sbinding@opensource.cirrus.com \
    --cc=stable@vger.kernel.org \
    --cc=tanureal@opensource.cirrus.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.