linux-tegra.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Andrzej Pietrasiewicz
	<andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>,
	linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	patches-yzvPICuk2AA4QjBA90+/kJqQE7yCjDx5@public.gmane.org,
	ibm-acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	platform-driver-x86-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: "Rafael J . Wysocki"
	<rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>,
	Len Brown <lenb-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Jonathan Cameron <jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Hartmut Knaack <knaack.h-Mmb7MZpHnFY@public.gmane.org>,
	Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
	Peter Meerwald-Stadler
	<pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org>,
	Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Krzysztof Kozlowski
	<krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Dmitry Torokhov
	<dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Shawn Guo <shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Pengutronix Kernel Team
	<kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Fabio Estevam <festevam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	NXP Linux Team <linux-imx-3arQi8VN3Tc@public.gmane.org>,
	Vladimir Zapolskiy <vz-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org>,
	Sylvain Lemieux
	<slemieux.tyco-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Laxman Dewangan
	<ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Thierry Reding
	<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Jonathan Hunter
	<jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Barry
Subject: Re: [PATCHv2 0/7] Support inhibiting input devices
Date: Mon, 18 May 2020 14:24:05 +0200	[thread overview]
Message-ID: <6d9921fc-5c2f-beda-4dcd-66d6970a22fe@redhat.com> (raw)
In-Reply-To: <e6030957-97dc-5b04-7855-bc14a78164c8-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>

Hi,

On 5/18/20 12:48 PM, Andrzej Pietrasiewicz wrote:
> Hi Hans,
> 
> W dniu 15.05.2020 o 20:19, Hans de Goede pisze:
>> Hi Andrezj,
>>
>> On 5/15/20 6:49 PM, Andrzej Pietrasiewicz wrote:
>>> Userspace might want to implement a policy to temporarily disregard input
>>> from certain devices, including not treating them as wakeup sources.
>>>
>>> An example use case is a laptop, whose keyboard can be folded under the
>>> screen to create tablet-like experience. The user then must hold the laptop
>>> in such a way that it is difficult to avoid pressing the keyboard keys. It
>>> is therefore desirable to temporarily disregard input from the keyboard,
>>> until it is folded back. This obviously is a policy which should be kept
>>> out of the kernel, but the kernel must provide suitable means to implement
>>> such a policy.
>>
>> Actually libinput already binds together (inside libinput) SW_TABLET_MODE
>> generating evdev nodes and e.g. internal keyboards on devices with 360°
>> hinges for this reason. libinput simply closes the /dev/input/event#
>> node when folded and re-opens it when the keyboard should become active
>> again. Thus not only suppresses events but allows e.g. touchpads to
>> enter runtime suspend mode which saves power. Typically closing the
>> /dev/input/event# node will also disable the device as wakeup source.
>>
>> So I wonder what this series actually adds for functionality for
>> userspace which can not already be achieved this way?
>>
>> I also noticed that you keep the device open (do not call the
>> input_device's close callback) when inhibited and just throw away
> 
> I'm not sure if I understand you correctly, it is called:
> 
> +static inline void input_stop(struct input_dev *dev)
> +{
> +    if (dev->poller)
> +        input_dev_poller_stop(dev->poller);
> +    if (dev->close)
> +        dev->close(dev);
>                  ^^^^^^^^^^^^^^^^
> +static int input_inhibit(struct input_dev *dev)
> +{
> +    int ret = 0;
> +
> +    mutex_lock(&dev->mutex);
> +
> +    if (dev->inhibited)
> +        goto out;
> +
> +    if (dev->users) {
> +        if (dev->inhibit) {
> +            ret = dev->inhibit(dev);
> +            if (ret)
> +                goto out;
> +        }
> +        input_stop(dev);
>                  ^^^^^^^^^^^^^^^^
> 
> It will not be called when dev->users is zero, but if it is zero,
> then nobody has opened the device yet so there is nothing to close.

Ah, I missed that.

So if the device implements the inhibit call back then on
inhibit it will get both the inhibit and close callback called?

And what happens if the last user goes away and the device
is not inhibited?

I'm trying to understand here what the difference between the 2
is / what the goal of having a separate inhibit callback ?

IOW is there something which we want to do on close when
the close is being done to inhibit the device, which we do
not want to do on a normal close ?

Regards,

Hans

  parent reply	other threads:[~2020-05-18 12:24 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20200506002746.GB89269@dtor-ws>
2020-05-15 16:49 ` [PATCHv2 0/7] Support inhibiting input devices Andrzej Pietrasiewicz
     [not found]   ` <20200515164943.28480-1-andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-05-15 16:51     ` [PATCHv2 1/7] Input: add input_device_enabled() Andrzej Pietrasiewicz
2020-05-15 16:51     ` [PATCHv2 2/7] Input: use input_device_enabled() Andrzej Pietrasiewicz
2020-05-15 16:52     ` [PATCHv2 6/7] Input: Add "inhibited" property Andrzej Pietrasiewicz
2020-05-15 18:19     ` [PATCHv2 0/7] Support inhibiting input devices Hans de Goede
     [not found]       ` <842b95bb-8391-5806-fe65-be64b02de122-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2020-05-17 22:55         ` Peter Hutterer
2020-05-18  2:40           ` Dmitry Torokhov
2020-05-18  7:36             ` Hans de Goede
2020-05-22 15:35             ` Andrzej Pietrasiewicz
2020-05-27  6:13               ` Peter Hutterer
2020-05-18 10:48         ` Andrzej Pietrasiewicz
     [not found]           ` <e6030957-97dc-5b04-7855-bc14a78164c8-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-05-18 12:24             ` Hans de Goede [this message]
2020-05-18 13:49               ` Andrzej Pietrasiewicz
2020-05-18 14:23                 ` Hans de Goede
2020-05-19  9:02                   ` Andrzej Pietrasiewicz
2020-05-19  9:36                     ` Hans de Goede
     [not found]                       ` <aa2ce2ab-e5bc-9cb4-8b53-c1ef9348b646-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2020-05-27  6:34                         ` Dmitry Torokhov
2020-06-02 16:56                           ` Andrzej Pietrasiewicz
2020-06-02 17:52                             ` Dmitry Torokhov
2020-06-02 18:50                               ` Andrzej Pietrasiewicz
2020-06-02 20:19                                 ` Hans de Goede
     [not found]                                   ` <8f97d2e1-497a-495d-bc82-f46dbeba440c-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2020-06-03 13:07                                     ` Andrzej Pietrasiewicz
2020-06-03 17:38                                       ` Hans de Goede
2020-06-03 17:54                                         ` Andrzej Pietrasiewicz
2020-06-03 19:37                                           ` Hans de Goede
2020-06-04  7:28                                             ` Dmitry Torokhov
2020-06-05 17:33                                               ` [PATCH v3 " Andrzej Pietrasiewicz
2020-06-05 17:33                                                 ` [PATCH v3 3/7] ACPI: button: Access input device's users under appropriate mutex Andrzej Pietrasiewicz
2020-06-05 17:33                                                 ` [PATCH v3 5/7] iio: adc: exynos: Use input_device_enabled() Andrzej Pietrasiewicz
     [not found]                                                   ` <20200605173335.13753-6-andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-06-05 19:49                                                     ` Michał Mirosław
     [not found]                                                 ` <20200605173335.13753-1-andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-06-05 17:33                                                   ` [PATCH v3 1/7] Input: add input_device_enabled() Andrzej Pietrasiewicz
2020-06-05 17:33                                                   ` [PATCH v3 2/7] Input: use input_device_enabled() Andrzej Pietrasiewicz
2020-06-05 17:33                                                   ` [PATCH v3 4/7] ACPI: button: Use input_device_enabled() helper Andrzej Pietrasiewicz
2020-06-05 17:33                                                   ` [PATCH v3 6/7] platform/x86: thinkpad_acpi: Use input_device_enabled() Andrzej Pietrasiewicz
2020-06-07 20:24                                                   ` [PATCH v3 0/7] Support inhibiting input devices Pavel Machek
2020-06-08  5:37                                                     ` Dmitry Torokhov
2020-06-08  9:28                                                       ` Andrzej Pietrasiewicz
2020-06-05 17:33                                                 ` [PATCH v3 7/7] Input: Add "inhibited" property Andrzej Pietrasiewicz
2020-06-05 17:41                                                   ` Hans de Goede
     [not found]                                                     ` <2336e15d-ff4b-bbb6-c701-dbf3aa110fcd-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2020-06-08 11:22                                                       ` [PATCH v4 0/7] Support inhibiting input devices Andrzej Pietrasiewicz
2020-06-08 11:22                                                         ` [PATCH v4 1/7] Input: add input_device_enabled() Andrzej Pietrasiewicz
2020-12-03  6:25                                                           ` Dmitry Torokhov
2020-06-08 11:22                                                         ` [PATCH v4 2/7] Input: use input_device_enabled() Andrzej Pietrasiewicz
2020-12-03  6:26                                                           ` Dmitry Torokhov
     [not found]                                                           ` <CGME20201207133237eucas1p26f8484944760a14e51dc7353ed33cd28@eucas1p2.samsung.com>
2020-12-07 13:32                                                             ` Marek Szyprowski
2020-12-07 15:50                                                               ` Andrzej Pietrasiewicz
2020-12-08 10:05                                                                 ` Marek Szyprowski
2020-12-09  6:37                                                                   ` Dmitry Torokhov
2020-12-11  7:09                                                                     ` [PATCH] Input: cyapa - do not call input_device_enabled from power mode handler Dmitry Torokhov
2020-12-11  8:22                                                                       ` Marek Szyprowski
2020-12-11  8:31                                                                         ` Dmitry Torokhov
2020-06-08 11:22                                                         ` [PATCH v4 3/7] ACPI: button: Access input device's users under appropriate mutex Andrzej Pietrasiewicz
2020-06-24 15:00                                                           ` Rafael J. Wysocki
2020-06-25  5:23                                                             ` Dmitry Torokhov
2020-06-25 10:55                                                               ` Rafael J. Wysocki
2020-10-05  5:08                                                                 ` Dmitry Torokhov
2020-06-08 11:22                                                         ` [PATCH v4 4/7] ACPI: button: Use input_device_enabled() helper Andrzej Pietrasiewicz
2020-06-25  5:24                                                           ` Dmitry Torokhov
2020-10-05  5:06                                                             ` Dmitry Torokhov
2020-06-08 11:22                                                         ` [PATCH v4 5/7] iio: adc: exynos: Use input_device_enabled() Andrzej Pietrasiewicz
     [not found]                                                           ` <20200608112211.12125-6-andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-06-10  1:28                                                             ` Michał Mirosław
2020-06-10  7:52                                                               ` [FIXED PATCH " Andrzej Pietrasiewicz
2020-06-08 11:22                                                         ` [PATCH v4 6/7] platform/x86: thinkpad_acpi: " Andrzej Pietrasiewicz
2020-06-08 11:22                                                         ` [PATCH v4 7/7] Input: Add "inhibited" property Andrzej Pietrasiewicz
2020-10-05 18:10                                                           ` Dmitry Torokhov
2020-10-06 13:04                                                             ` Andrzej Pietrasiewicz
2020-10-07  1:11                                                               ` Dmitry Torokhov
2020-10-07  1:12                                                                 ` Dmitry Torokhov
2020-12-03  6:26                                                                   ` Dmitry Torokhov
     [not found]                                                         ` <20200608112211.12125-1-andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-06-10  9:49                                                           ` [PATCH v4 0/7] Support inhibiting input devices Hans de Goede
2020-06-10 10:38                                                             ` Rafael J. Wysocki
     [not found]                                                               ` <CAJZ5v0hB2ra2K=dd9ZjVyy1V2b1PmFHm79uDO2HtHU1D_4YUbw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2020-06-10 13:12                                                                 ` Andrzej Pietrasiewicz
2020-06-10 13:21                                                                   ` Hans de Goede
2020-06-10 13:41                                                                     ` Andrzej Pietrasiewicz
     [not found]                                                                       ` <2d5fd063-66bc-c707-4041-84a17c0a7d04-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-06-12  8:30                                                                         ` Hans de Goede
2020-06-12  8:47                                                                           ` Andrzej Pietrasiewicz
2020-06-16 17:29                                                                           ` [PATCH] Input: document inhibiting Andrzej Pietrasiewicz
2020-06-16 17:38                                                                             ` Randy Dunlap
     [not found]                                                                             ` <20200616172909.21625-1-andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-06-17  7:44                                                                               ` Hans de Goede
     [not found]                                                                                 ` <f9007f37-c526-5fa4-3188-a554d2434177-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2020-06-17 10:18                                                                                   ` [PATCH v2] " Andrzej Pietrasiewicz
     [not found]                                                                                     ` <20200617101822.8558-1-andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2020-06-17 10:21                                                                                       ` Hans de Goede
2020-06-17 16:52                                                                                     ` Randy Dunlap
2020-06-23 13:35                                                                                     ` Pavel Machek
2020-12-03  6:27                                                                                     ` Dmitry Torokhov
     [not found]                                                                     ` <3e61c9c1-b211-da9f-c55b-b44eb6522f2a-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2020-06-10 14:01                                                                       ` [PATCH v4 0/7] Support inhibiting input devices Rafael J. Wysocki
2020-06-10 13:52                                                                 ` Hans de Goede
2020-06-10 18:28                                                               ` Dmitry Torokhov
2020-06-12  8:14                                                                 ` Hans de Goede
2020-06-12  8:17                                                         ` Hans de Goede
2020-08-03 14:40                                                           ` Andrzej Pietrasiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6d9921fc-5c2f-beda-4dcd-66d6970a22fe@redhat.com \
    --to=hdegoede-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org \
    --cc=dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=festevam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=ibm-acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=knaack.h-Mmb7MZpHnFY@public.gmane.org \
    --cc=krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org \
    --cc=ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=lenb-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-imx-3arQi8VN3Tc@public.gmane.org \
    --cc=linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=patches-yzvPICuk2AA4QjBA90+/kJqQE7yCjDx5@public.gmane.org \
    --cc=platform-driver-x86-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org \
    --cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
    --cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=slemieux.tyco-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=vz-ChpfBGZJDbMAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).