staging: nvec: make keyboard init synchronous
authorMarc Dietrich <marvin24@gmx.de>
Sat, 6 Apr 2024 12:31:20 +0000 (14:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 Apr 2024 11:59:19 +0000 (13:59 +0200)
Currently, we are constantly sending commands to the EC without waiting for them to be
executed. This can lead to confusion, especially if we initialize several different devices
one after the other.
To avoid this, we are switching from asynchronous to synchronous command transmission.

Signed-off-by: Marc Dietrich <marvin24@gmx.de>
Link: https://lore.kernel.org/r/20240406123123.37148-3-marvin24@gmx.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/nvec/nvec_kbd.c

index f9a1da952c0a8ab9ffbceccd0dd60d72528bc4bb..d0259c80f8105e6529262329e5ad0ce4405e512f 100644 (file)
@@ -148,15 +148,16 @@ static int nvec_kbd_probe(struct platform_device *pdev)
        nvec_register_notifier(nvec, &keys_dev.notifier, 0);
 
        /* Enable keyboard */
-       nvec_write_async(nvec, enable_kbd, 2);
+       nvec_write_sync(nvec, enable_kbd, 2, NULL);
 
        /* configures wake on special keys */
-       nvec_write_async(nvec, cnfg_wake, 4);
+       nvec_write_sync(nvec, cnfg_wake, 4, NULL);
+
        /* enable wake key reporting */
-       nvec_write_async(nvec, cnfg_wake_key_reporting, 3);
+       nvec_write_sync(nvec, cnfg_wake_key_reporting, 3, NULL);
 
        /* Disable caps lock LED */
-       nvec_write_async(nvec, clear_leds, sizeof(clear_leds));
+       nvec_write_sync(nvec, clear_leds, sizeof(clear_leds), NULL);
 
        return 0;
 }