Re: How to enable auto-suspend by default
From: Greg KH
Date: Tue Nov 10 2020 - 06:33:25 EST
On Tue, Nov 10, 2020 at 11:57:07AM +0100, Bastien Nocera wrote:
> Hey,
>
> systemd has been shipping this script to enable auto-suspend on a
> number of USB and PCI devices:
> https://github.com/systemd/systemd/blob/master/tools/chromiumos/gen_autosuspend_rules.py
>
> The problem here is twofold. First, the list of devices is updated from
> ChromeOS, and the original list obviously won't be updated by ChromeOS
> developers unless a device listed exists in a ChromeBook computer,
> which means a number of devices that do support autosuspend aren't
> listed.
>
> The other problem is that this list needs to exist at all, and that it
> doesn't seem possible for device driver developers (at various levels
> of the stack) to opt-in to auto-suspend when all the variants of the
> device (or at least detectable ones) support auto-suspend.
A driver can say they support autosuspend today, but I think you are
concerned about the devices that are controlled by class-compliant
drivers, right? And for those, no, we can't do this in the kernel as
there are just too many broken devices out there.
As proof of this, look at other operating systems. They had to
implement the same type of "allowed devices" list that we do. In fact,
we did this for Linux because they did this, which means that when
hardware manufacturers test their device, they only test with other
operating systems and not Linux and so, we need to match what those
other OSes do as well.
Sorry,
greg k-h