Re: Vibrations in input vs. LED was Re: [PATCH v2 0/3] led: ledtrig-transient: add support for hrtimer

From: Jacek Anaszewski
Date: Wed Sep 20 2017 - 15:32:45 EST


On 09/19/2017 11:07 PM, Dmitry Torokhov wrote:
> On Tue, Sep 19, 2017 at 1:45 PM, Jacek Anaszewski
> <jacek.anaszewski@xxxxxxxxx> wrote:
>> On 09/19/2017 12:29 AM, Dmitry Torokhov wrote:
>>> On Mon, Sep 18, 2017 at 1:50 PM, Jacek Anaszewski
>>> <jacek.anaszewski@xxxxxxxxx> wrote:
>>>> Hi,
>>>>
>>>> On 09/17/2017 08:22 PM, Pavel Machek wrote:
>>>>> Hi!
>>>>>
>>>>>>> If your objection is that FF is not easily engaged from the shell -
>>>>>>> yes, but I do not think that actual users who want to do vibration do
>>>>>>> that via shell either. On the other hand, can you drop privileges and
>>>>>>> still allow a certain process control your vibrator via LED interface?
>>>>>>> With FF you can pass an FD to whoever you deem worthy and later revoke
>>>>>>> access.
>>>>>>>
>>>>>>> IOW sysfs interfaces are nice for quick hacks, but when you want to
>>>>>>> use them in real frameworks, where you need to think about proper
>>>>>>> namespaces, isolation, etc, etc, other kinds of interfaces might suit
>>>>>>> better.
>>>>>>
>>>>>> I'd leave the decision to the user. We could add a note to the
>>>>>> Documentation/leds/ledtrig-transient.txt that force feedback interface
>>>>>> should be preferable choice for driving vibrate devices.
>>>>>
>>>>> We don't want to leave decision to the user; because then we'll end up
>>>>> with userland applications having to support _both_ interfaces.
>>>>
>>>> This state has lasted for five years now. I don't recall any
>>>> complaints. Do you?
>>>
>>> I was telling Shuah 5 years ago that using LED for what she wanted was
>>> not the right idea. I even made a patch for her implementing the
>>> functionality they were after: https://lkml.org/lkml/2012/4/10/41
>>>
>>> Unfortunately this still somehow made it into the kernel. I guess the
>>> angle of having LEDs auto-shutoff makes sense still; using it for
>>> haptics does not.
>>
>> Thanks for the pointer.
>>
>>>>
>>>>> Plus, it is not really your decision. Dmitry is maintainer of input
>>>>> subsystem, input was doing force feedback for 10+ years, and he
>>>>> already made a decision.
>>>>
>>>> It seems that you applied a fait accompli method here.
>>>>
>>>> Actually could you share what the decision is? AFAIK we're not
>>>> discussing here any patch for the input subsystem?
>>>
>>> No, we are discussing if it makes sense encouraging 2nd interface for
>>> haptic. We are also discussing whether it makes sense to implement new
>>> features in LED subsystem that seem to be only beneficial for this
>>> interface (I assume the "normal" LEDs do not need that kind of
>>> precision?).
>>
>> As you noticed in one of the previous messages, thanks to the leds-gpio
>> driver we can drive a wide range of devices from the level of
>> LED subsystem.
>
> Yes, you can create whatever. It goes normally as this: crap, we need
> to ship something really soon, factory build is a week from now and we
> have absolutely no time to think about proper interface. Hey, let's
> quickly bolt on some quirk on an unrelated interface, it almost does
> what we want. We do not care that out use case does not really fit
> here, our custom one-off userspace will know how to deal with it.
>
>> LED trigger mechanism makes it even more versatile,
>> and, in this area, even somehow akin to the GPIO subsystem. In the
>> future we could think of making this trigger mechanism accessible by
>> the two and thus any initiative aiming at enhancing it shouldn't be
>> discouraged.
>
> If there is a use case that would benefit from this functionality:
> certainly. Do you have one in mind?

Few minutes of googling gave below results. People are doing that
anyway so adding EXPERIMENTAL support in mainline maybe wouldn't
be such a wrong idea. It seems that there would be many testers.

[0]
https://stackoverflow.com/questions/16534668/how-to-generate-a-steady-37khz-gpio-trigger-from-inside-linux-kernel
[1]
https://discuss.96boards.org/t/generate-high-frequency-square-wave-on-a-gpio-pin/2615/4
[2]
https://stackoverflow.com/questions/4634991/how-to-generate-100khz-clock-signal-in-liunx-kernel-module-with-bit-banging
[3] http://www.friendlyarm.net/forum/topic/3566
[4] http://codeandlife.com/2016/04/18/beaglebone-black-gpio-benchmark/
[5] https://www.raspberrypi.org/forums/viewtopic.php?t=56748
--
Best regards,
Jacek Anaszewski