Message ID | 20220710164026.541466-1-r.stratiienko@gmail.com (mailing list archive) |
---|---|
State | RFC, archived |
Headers | show |
Series | [RFC] thermal/core: Disable uevent messages for cooling devices | expand |
On Sun, Jul 10, 2022 at 9:40 AM Roman Stratiienko <r.stratiienko@gmail.com> wrote: > > During suspend, the big CPU cluster is turned off first while a little > is still running. This forcibly unregisters the cooling device which > sends a "REMOVE" uevent to all subscribers [1]. > > In case userspace netlink subscriber has set the EPOLLWAKEUP flag, a > wakeup event is triggered that causes suspend to be aborted. > > Without this change, suspend doesn't work on PinePhone PRO with AOSP > userland. > > [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5c238a8b599f1ae25eaeb08ad0e9e13e2b9eb023 > Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com> Hey Roman, I wanted to drudge this patch up, to ask what the current status of it was? Is there an alternative solution that you've been using since this was last sent out? I've heard of some vendors working around something similar, so I wanted to see if we could get a common fix upstream. thanks -john
Hi John, I haven't worked on it since I posted it initially. But it looks like there's an alternative patch already upstreamed and backported into stable: https://lore.kernel.org/linux-kernel/CAJZ5v0hHTuEXmQA=0D90eR_KUsOsfcxYbTS=zQYDTXuY6o_K_Q@mail.gmail.com/T/ BR, Roman пн, 8 апр. 2024 г. в 21:48, John Stultz <jstultz@google.com>: > > On Sun, Jul 10, 2022 at 9:40 AM Roman Stratiienko > <r.stratiienko@gmail.com> wrote: > > > > During suspend, the big CPU cluster is turned off first while a little > > is still running. This forcibly unregisters the cooling device which > > sends a "REMOVE" uevent to all subscribers [1]. > > > > In case userspace netlink subscriber has set the EPOLLWAKEUP flag, a > > wakeup event is triggered that causes suspend to be aborted. > > > > Without this change, suspend doesn't work on PinePhone PRO with AOSP > > userland. > > > > [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5c238a8b599f1ae25eaeb08ad0e9e13e2b9eb023 > > Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com> > > Hey Roman, > I wanted to drudge this patch up, to ask what the current status of > it was? Is there an alternative solution that you've been using since > this was last sent out? > I've heard of some vendors working around something similar, so I > wanted to see if we could get a common fix upstream. > > thanks > -john
On Mon, Apr 8, 2024 at 11:59 AM Roman Stratiienko <r.stratiienko@gmail.com> wrote: > > I haven't worked on it since I posted it initially. But it looks like > there's an alternative patch already upstreamed and backported into > stable: > > https://lore.kernel.org/linux-kernel/CAJZ5v0hHTuEXmQA=0D90eR_KUsOsfcxYbTS=zQYDTXuY6o_K_Q@mail.gmail.com/T/ Ah! Many thanks for the link! I'll check in with folks to better understand if there is a functionality gap between what you submitted and what landed upstream. Thanks again! -john
On Mon, Apr 8, 2024 at 12:03 PM John Stultz <jstultz@google.com> wrote: > > On Mon, Apr 8, 2024 at 11:59 AM Roman Stratiienko > <r.stratiienko@gmail.com> wrote: > > > > I haven't worked on it since I posted it initially. But it looks like > > there's an alternative patch already upstreamed and backported into > > stable: > > > > https://lore.kernel.org/linux-kernel/CAJZ5v0hHTuEXmQA=0D90eR_KUsOsfcxYbTS=zQYDTXuY6o_K_Q@mail.gmail.com/T/ > > Ah! Many thanks for the link! I'll check in with folks to better > understand if there is a functionality gap between what you submitted > and what landed upstream. Ah. Looks like it maybe hasn't landed in -stable yet. Thanks again for the pointer! -john
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index cdc0552e8c42e..e6b21f2792a85 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -925,6 +925,7 @@ __thermal_cooling_device_register(struct device_node *np, cdev->device.class = &thermal_class; cdev->devdata = devdata; thermal_cooling_device_setup_sysfs(cdev); + dev_set_uevent_suppress(&cdev->device, true); ret = device_register(&cdev->device); if (ret) goto out_kfree_type;
During suspend, the big CPU cluster is turned off first while a little is still running. This forcibly unregisters the cooling device which sends a "REMOVE" uevent to all subscribers [1]. In case userspace netlink subscriber has set the EPOLLWAKEUP flag, a wakeup event is triggered that causes suspend to be aborted. Without this change, suspend doesn't work on PinePhone PRO with AOSP userland. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5c238a8b599f1ae25eaeb08ad0e9e13e2b9eb023 Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com> --- drivers/thermal/thermal_core.c | 1 + 1 file changed, 1 insertion(+)