[systemd-devel] [PATCH] logind: allow suspending if there are no displays
Tom Gundersen
teg at jklm.no
Sun Apr 27 14:49:14 PDT 2014
On Sun, Apr 27, 2014 at 11:44 PM, Mantas Mikulėnas <grawity at gmail.com> wrote:
> With proprietary graphics drivers, there won't be any 'drm' devices in
> sysfs, so logind will never suspend the system upon closing the lid,
> even if only one (internal) display is connected. This has been reported
> by multiple users so far.
>
> IMHO, it's better to suspend the system in this case for safety reasons,
> to avoid having nvidia blob users' laptops overheat, for the same reason
> that sleep inhibitors are overridden (LidSwitchIgnoreInhibited=yes).
This appears to be intentional, according to the comment just about
the code you patched:
/* If we have more than one or no displays connected,
* don't react to lid closing. The no display case we
* treat like this under the assumption that there is
* no modern drm driver available. */
So if you really think this is wrong, I guess you should at least also
update the comment ;-)
Cheers,
Tom
> ---
> src/login/logind-action.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/login/logind-action.c b/src/login/logind-action.c
> index 1928f43..c488f04 100644
> --- a/src/login/logind-action.c
> +++ b/src/login/logind-action.c
> @@ -86,7 +86,7 @@ int manager_handle_action(
> n = manager_count_displays(m);
> if (n < 0)
> log_warning("Display counting failed: %s", strerror(-n));
> - else if (n != 1) {
> + else if (n > 1) {
> log_debug("Ignoring lid switch request, %i displays connected.", n);
> return 0;
> }
> --
> 2.0.0.rc0.38.g1697bf3
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
On Sun, Apr 27, 2014 at 11:44 PM, Mantas Mikulėnas <grawity at gmail.com> wrote:
> With proprietary graphics drivers, there won't be any 'drm' devices in
> sysfs, so logind will never suspend the system upon closing the lid,
> even if only one (internal) display is connected. This has been reported
> by multiple users so far.
>
> IMHO, it's better to suspend the system in this case for safety reasons,
> to avoid having nvidia blob users' laptops overheat, for the same reason
> that sleep inhibitors are overridden (LidSwitchIgnoreInhibited=yes).
> ---
> src/login/logind-action.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/login/logind-action.c b/src/login/logind-action.c
> index 1928f43..c488f04 100644
> --- a/src/login/logind-action.c
> +++ b/src/login/logind-action.c
> @@ -86,7 +86,7 @@ int manager_handle_action(
> n = manager_count_displays(m);
> if (n < 0)
> log_warning("Display counting failed: %s", strerror(-n));
> - else if (n != 1) {
> + else if (n > 1) {
> log_debug("Ignoring lid switch request, %i displays connected.", n);
> return 0;
> }
> --
> 2.0.0.rc0.38.g1697bf3
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
More information about the systemd-devel
mailing list