[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f38e4283-7133-4865-b4fe-eafb6bd30534@notapiano>
Date: Tue, 26 Nov 2024 08:37:23 -0500
From: Nícolas F. R. A. Prado <nfraprado@...labora.com>
To: Hsin-Te Yuan <yuanhsinte@...omium.org>
Cc: "Rafael J. Wysocki" <rafael@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Zhang Rui <rui.zhang@...el.com>, Lukasz Luba <lukasz.luba@....com>,
Matthias Brugger <matthias.bgg@...il.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
Alexandre Mergnat <amergnat@...libre.com>,
Balsam CHIHI <bchihi@...libre.com>, kernel@...labora.com,
linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org,
Chen-Yu Tsai <wenst@...omium.org>,
Bernhard Rosenkränzer <bero@...libre.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
stable@...r.kernel.org
Subject: Re: [PATCH 1/5] thermal/drivers/mediatek/lvts: Disable monitor mode
during suspend
On Tue, Nov 26, 2024 at 04:00:42PM +0800, Hsin-Te Yuan wrote:
> On Tue, Nov 26, 2024 at 5:21 AM Nícolas F. R. A. Prado
> <nfraprado@...labora.com> wrote:
> >
> > When configured in filtered mode, the LVTS thermal controller will
> > monitor the temperature from the sensors and trigger an interrupt once a
> > thermal threshold is crossed.
> >
> > Currently this is true even during suspend and resume. The problem with
> > that is that when enabling the internal clock of the LVTS controller in
> > lvts_ctrl_set_enable() during resume, the temperature reading can glitch
> > and appear much higher than the real one, resulting in a spurious
> > interrupt getting generated.
> >
> This sounds weird to me. On my end, the symptom is that the device
> sometimes cannot suspend.
> To be more precise, `echo mem > /sys/power/state` returns almost
> immediately. I think the irq is more
> likely to be triggered during suspension.
Hi Hsin-Te,
please also check the first paragraph of the cover letter, and patch 2, that
should clarify it. But anyway, I can explain it here too:
The issue you observed is caused by two things combined:
* When returning from resume with filtered mode enabled, the sensor temperature
reading can glitch, appearing much higher. (fixed by this patch)
* Since the Stage 3 threshold is enabled and configured to take the maximum
reading from the sensors, it will be triggered by that glitch and bring the
system into a state where it can no longer suspend, it will just resume right
away. (fixed by patch 2)
So currently, every so often, during resume both these things will happen, and
any future suspend will resume right away. That's why this was never observed by
me when testing a single suspend/resume. It only breaks on resume, and only
affects future suspends, so you need to test multiple suspend/resumes on the
same run to observe this issue.
And also since both things are needed to cause this issue, if you apply only
patch 1 or only patch 2, it will already fix the issue.
Hope this clarifies it.
Thanks,
Nícolas
Powered by blists - more mailing lists