[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