Re: [PATCH v14 0/2] Lenovo Yoga Book 9 keyboard dock detection

Dave Carey <[email protected]> Tue, 28 Jul 2026 18:01:32 -0400
Newsgroups org.kernel.vger.platform-driver-x86,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Got it.  Thanks again for your patience.

Putting together, hopefully the final version for this patch and 
re-submitting.

Cheers!
-Dave

On 7/24/26 7:42 AM, Ilpo Järvinen wrote:
> On Wed, 22 Jul 2026, Dave Carey wrote:
>
>> Changes in v14 (addressing Ilpo Järvinen's v13 review of patch 2/2):
>>
>>    - Restore #include <linux/compiler_attributes.h> and <linux/spinlock.h>,
>>      which were accidentally absent from v13.
>>    - Restore spinlock_t lock in struct yb9_kbdock_data, spin_lock_init(),
>>      and spin_lock/spin_unlock around input_report_switch + input_sync
>>      in yb9_kbdock_report().
>>    - Restore pointer-out yb9_kbdock_query(d, u32 *bkbd) and removal of
>>      zero-initializer from struct wmi_buffer out.
>>    - Restore int return from yb9_kbdock_sync() and error propagation in
>>      yb9_kbdock_resume() and yb9_kbdock_block_probe().
> Hi,
>
> Unfortunately, this still seems to miss one non-cosmetic change (diff of
> diffs, v12 vs v14):
>
> diff --git a/drivers/platform/x86/lenovo/yb9-kbdock.c b/drivers/platform/x86/lenovo/yb9>
>   new file mode 100644
> -index 0000000..0000000
> +index 0000000..40a2566
>   --- /dev/null
>   +++ b/drivers/platform/x86/lenovo/yb9-kbdock.c
> -@@ -0,0 +1,322 @@
> +@@ -0,0 +1,324 @@
>   +// SPDX-License-Identifier: GPL-2.0-or-later
>   +/*
>   + * Lenovo Yoga Book 9 keyboard-dock detection
> @@ -421,8 +449,10 @@
>   +      /*
>   +       * _WED(0xEB) returns EC.BKBD directly as a 32-bit integer
>   +       * (LENOVO_BTKBD_EVENT WmiDataId(1) uint32 Status).
> -+       * Short-buffer guard is handled by .min_event_size below.
>   +       */
> ++      if (!data || data->length < sizeof(__le32))
> ++              return;
> ++
>   +      u32 bkbd = le32_to_cpu(*(const __le32 *)data->data);
>   +
>   +      blocking_notifier_call_chain(&yb9_kbdock_chain_head, bkbd, NULL);
> @@ -441,7 +471,6 @@
>   +      .id_table       = yb9_kbdock_event_id_table,
>   +      .no_singleton   = true,
>   +      .notify_new     = yb9_kbdock_notify_new,
> -+      .min_event_size = sizeof(__le32),
>   +};
>   +
>   +/* ------------------------------------------------------------------
>
>
>> Changes in v13:
> [...snip...]
>
>> Changes in v10 (addressing Armin Wolf's v9 review of patch 2/2):
> [...snip...]
>
>>    - yb9_kbdock_notify_new(): drop manual length check; use
>>      .min_event_size = sizeof(__le32) in struct wmi_driver instead
>>
>> Patch 1/2 (lenovo-ymc) is unchanged from v9.
>
> ...And there's no need to apologize. :-)
>
>
> I personally keep earlier versions of the patches I've sent myself around
> as files so I can easily do diff-of-diffs against the previous version. It
> has saved me sooo many time from making fool of myself.
>
> I actually normally write the patch version history bullets based on that
> diff so I won't forget anything important from it. Nor hallucinate some
> changes that I thought I'd made but didn't (=> back to the drawing board).
>
>
> If you need the old version you can probably get them from lore archive if
> you don't have them around anymore (but by not placing them cleanly into
> own threads one needs to be careful to get the right ones).
>