Re: [PATCH v3] platform/x86: ideapad-laptop: do not poke keyboard controller

From: Rong Zhang

Date: Sat Oct 24 2026 - 11:33:34 EST


Hi Dmitry,

On Fri, 2026-10-23 at 20:20 -0700, Dmitry Torokhov wrote:
> Hi Rong,
>
> On Sat, Oct 24, 2026 at 10:15:56AM +0800, Rong Zhang wrote:
> > > static bool ctrl_ps2_aux_port;
> > > module_param(ctrl_ps2_aux_port, bool, 0444);
> > > MODULE_PARM_DESC(ctrl_ps2_aux_port,
> > > - "Enable driver based PS/2 aux port en-/dis-abling on touchpad on/off toggle. If you need this please report this to: platform-driver-x86@xxxxxxxxxxxxxxx");
> > > + "Enable driver based suppression of touchpad events on touchpad on/off toggle. If you need this please report this to: platform-driver-x86@xxxxxxxxxxxxxxx");
> >
> > By re-purposing ctrl_ps2_aux_port, you are breaking its existing users
> > *silently*.
>
> I'm not?

Yes, and no.

When only focusing on the input events delivered to the userspace,
nothing is broken if everything works fine.

However, the methodology has been changed from hardware-based to
software-based. Because of the fundamental change, it has the potential
to break something if some users depends on the side-effect of toggling
the aux port.

While my device never needs the quirk, I can think of several useful
side-effects:

- pause the interrupt (and hence pause event handling) to save some
energy
- prevent the touchpad from waking up the platform
- reset faulty touchpads

By switching to the software-based methodology, all these capabilities
have gone. Of course, relying on these side-effects is a misuse, but
relying on the parameter itself without reporting it to the mailing list
is also a misuse! More below.

>
> >
> > Please don't do so, but rename module parameter to reflect the new
> > behavior. In this manner, the existing users should at least see some
> > clues in kmsg.
>
> The purpose of ctrl_ps2_aux_port (introduced in commit c69e7d843d2c
> ("platform/x86: ideapad-laptop: Only toggle ps2 aux port on/off on
> select models")) is to let the driver disable and re-enable the PS/2
> touchpad on models where pressing the touchpad toggle hotkey only
> toggles the LED in the EC without muting the touchpad itself.
>
> This patch still targets the exact same i8042 PS/2 touchpad devices and
> achieves the exact same user-visible behavior (muting and unmuting the
> touchpad when the hotkey is pressed), just by filtering events in the
> input layer instead of poking the 8042 controller behind the i8042 and
> psmouse drivers' backs.

Input events are not the only user-visible behavior.

>
> Anyone currently passing ideapad_laptop.ctrl_ps2_aux_port=1 on their
> kernel command line or in modprobe configuration will continue to have a
> working touchpad toggle. Renaming the module parameter, on the other
> hand, is what would actually break those existing users by causing the
> module to reject the parameter and stop muting their touchpad.

A completely new behavior reusing an old knob is always prone to break
*something* in a obscure way unless users are notified about the change.
Breaking something with a visible warning [1] in kmsg is much better than
potentially breaking something in radio silence.

We don't want to support poking i8042 anymore, so the use of
'ctrl_ps2_aux_port' is anyway becoming unsupported. The parameter was
introduced only for debugging and is expected to be removed at any time.
If users don't report their use of the parameter to the mailing list,
they are already relying on a broken setup.

By renaming it and breaking the unsupported setup loudly, we encourage
users to report quirky devices, as well as getting rid of an outdated
parameter name.

[1]: ideapad_laptop: unknown parameter 'ctrl_ps2_aux_port' ignored

Thanks,
Rong

>
> Thanks.