Re: [PATCH v12 3/7] input: serio: Add driver for ASUS Transformer dock keyboard and touchpad
From: Svyatoslav Ryhel
Date: Wed Oct 21 2026 - 02:46:51 EST
вт, 20 жовт. 2026 р. о 22:04 Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> пише:
>
> On Mon, Oct 19, 2026 at 01:04:02PM +0300, Svyatoslav Ryhel wrote:
> > From: Michał Mirosław <mirq-linux@xxxxxxxxxxxx>
> >
> > Add input driver for ASUS Transformer dock keyboard and touchpad.
> >
> > Some keys in ASUS Dock report keycodes that don't make sense according to
> > their position, this patch modifies the incoming data that is sent to
> > serio to send proper scancodes.
> >
> > Co-developed-by: Ion Agorria <ion@xxxxxxxxxxx>
> > Signed-off-by: Ion Agorria <ion@xxxxxxxxxxx>
> > Signed-off-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx>
> > Signed-off-by: Svyatoslav Ryhel <clamor95@xxxxxxxxx>
>
> Acked-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
>
> > +static int asus_ec_kbc_probe(struct platform_device *pdev)
> > +{
> > + struct asusec_core *ec = dev_get_drvdata(pdev->dev.parent);
> > + struct asus_ec_kbc_data *priv;
> > + int error;
> > +
> > + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
> > + if (!priv)
> > + return -ENOMEM;
> > +
> > + platform_set_drvdata(pdev, priv);
> > +
> > + priv->ec = ec;
> > + priv->parent = to_i2c_client(pdev->dev.parent);
> > +
> > + error = asus_ec_register_serio(pdev, 0, "Keyboard", 0);
> > + if (error)
> > + return error;
> > +
> > + error = asus_ec_register_serio(pdev, 1, "Touchpad", I8042_CMD_AUX_SEND);
> > + if (error)
> > + return error;
> > +
> > + priv->nb.notifier_call = asus_ec_kbc_notify;
> > +
> > + error = blocking_notifier_chain_register(&ec->notify_list, &priv->nb);
> > + if (error)
> > + return dev_err_probe(&pdev->dev, error,
> > + "failed to register blocking notifier chain");
>
> I think sashiko is right that we need to register the notifier first,
> and in it check if serio ports are ready/registered or not. For that we
> probably need a lock and set pointers or flags in serio's start()/stop()
> or open()/close() methods.
>
> This can be done as a followup I think.
>
FYI, Sashiko likes to hallucinate. Initially notifier was registered
after ports, then sashiko suggested to move it before. Then in v10 it
fussed again and suggested to move after. Then v11 passed without
regressions and now in v12 it fusses again that notifier should be
before.
> Thanks.
>
> --
> Dmitry