On Mon, Jun 30, 2025 at 08:50:27PM +0900, Vishnu Sankar wrote:
> Hi Dimitry,
> 
> 
> On Mon, Jun 30, 2025 at 2:20 PM Dmitry Torokhov
> <dmitry.torok...@gmail.com> wrote:
> >
> > Hi Mark,
> >
> > On Mon, Jun 30, 2025 at 05:42:45AM +0900, Mark Pearson wrote:
> > > Hi Dmitry,
> > >
> > > On Fri, Jun 27, 2025, at 2:14 PM, Dmitry Torokhov wrote:
> > > > Hi Vishnu,
> > > >
> > > > On Fri, Jun 20, 2025 at 09:42:08AM +0900, Vishnu Sankar wrote:
> > > >> Newer ThinkPads have a doubletap feature that needs to be turned
> > > >> ON/OFF via the trackpoint registers.
> > > >> Systems released from 2023 have doubletap disabled by default and
> > > >> need the feature enabling to be useful.
> > > >>
> > > >> This patch introduces support for exposing and controlling the
> > > >> trackpoint doubletap feature via a sysfs attribute.
> > > >> /sys/devices/platform/thinkpad_acpi/tp_doubletap
> > > >> This can be toggled by an "enable" or a "disable".
> > > >>
> > > >> With this implemented we can remove the masking of events, and rely on
> > > >> HW control instead, when the feature is disabled.
> > > >>
> > > >> Note - Early Thinkpads (pre 2015) used the same register for hysteris
> > > >> control, Check the FW IDs to make sure these are not affected.
> > > >>
> > > >> trackpoint.h is moved to linux/input/.
> > > >
> > > > No, please keep everything private to trackpoint.c and do not involve
> > > > thinkpad_acpi driver. By doing so you are introducing unwanted
> > > > dependencies (for both module loading, driver initialization, and
> > > > operation) and unsafe use of non-owned pointers/dangling pointers, etc.
> > > >
> > >
> > > Do you have recommendations on how to handle this case then?
> > >
> > > This is a Thinkpad specific feature and hence the logic for involving
> > > thinkpad_acpi. There are Thinkpad hotkeys that will enable/disable the
> > > trackpoint doubletap feature - so there is some linkage. I'm not sure
> > > how to avoid that.
> > >
> > > Is there a cleaner way to do this that you'd recommend we look at
> > > using? It's a feature (albeit a minor one) on the laptops that we'd
> > > like to make available to Linux users.
> >
> > I believe if you define the doubletap as an attribute (see
> > TRACKPOINT_INT_ATTR or TRACKPOINT_BIT_ATTR in
> > drivers/input/mouse/trackpoint.c) then whatever process is handling the
> > hot keys switching this function on or off should be able to toggle the
> > behavior. The difference is that it will have to locate trackpoint node
> > in /sys/bus/serio/devices/* (or maybe scan
> > /sys/devices/platform/i8042/serio*) instead of expecting the attributes
> > be atached to thinkpad_acpi instance.
> >
> > You just don't want to have one driver directly peeking into another,
> > because then it starts breaking if you unbind or force use of a
> > different protocol, etc.
> >
> > Thanks.
> >
> > --
> > Dmitry
> 
> Thanks for the suggestion. I understand the concern about avoiding
> direct driver-to-driver calls and unwanted dependencies.
> 
> Just to clarify: if we move the sysfs attribute to the trackpoint
> driver itself (under /sys/bus/serio/devices/...), then thinkpad_acpi
> would no longer be able to directly enable/disable the doubletap
> feature in response to the Fn+G hotkey press. Don't we need userspace
> to listen for the hotkey event, find the trackpoint sysfs node, and
> toggle the attribute there?

Yes.

> That's possible, of course, but it means the feature won't work
> out-of-the-box without extra userspace integration. For example, there
> would be no automatic linkage between pressing Fn+G and toggling the
> feature unless a udev rule or userspace daemon is configured to do it.
> Or is there an approach you'd recommend to preserve the automatic
> hotkey integration while avoiding the direct dependency between
> thinkpad_acpi and trackpoint?
> Sorry, I missed something.

Well, I guess you can look into interacting with sysfs file from
thinkpad_acpi.c... There is kernel_read_file_from_path() and others, you
will need to implement write counterpart of it. Pretty ugly but safer
than following pointers that may go away.

Thanks.

-- 
Dmitry


_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel

Reply via email to