From nobody Mon Sep 28 19:24:54 2026 Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B8203630BE for ; Tue, 18 Aug 2026 08:25:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.208.172 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787041543; cv=pass; b=TTGut0b6nyv9b3csrY2WaKsYPvlKSMHF5ivY4LgYCppiWd3d0mIoQDuugKQNSlb2UGJSLWFxKyh5hi2IbqvqpqTOW7tAREqDy6QGZhUbgCeTpB3fnGgdAtg5vcfyVvawAqn12JNxXPzbODdG+wbmNfiMtKFWcO6YBv+/v0c+HMU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787041543; c=relaxed/simple; bh=DJT11aK4BEheJPP/qY8HOdFg5c0h+5gAbI1rRLgLv24=; h=MIME-Version:From:Date:Message-ID:Subject:To:Cc:Content-Type; b=bUMhYCtKK165jFbEstgkLF8nHgFZkgAouOJIH3GitICCXBnEQApU6agE3+pMxNU+8fIMYy0rV0qF6FXILJMf24QRZ2+nDOBDAeM9qScqCren/pDhyfLJoRKyMx+7wVZ0DqdA7IuzzEIUHjewIWj8V1/FdcyIiqddz/vhHVLyCEE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZA39j0q9; arc=pass smtp.client-ip=209.85.208.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZA39j0q9" Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-39c953950dfso34882941fa.1 for ; Tue, 18 Aug 2026 01:25:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787041540; cv=none; d=google.com; s=arc-20260327; b=hLtNZmwqMZ1HGowKpvO7vYHcM7ewT6qctaH4naykhd2u4yY/IfJg36PWgqPIa/0/P6 CtDHH+/dcvc7ME/NjHP8IeViOHlwgvwTkTGYUxHMSrtzrJNnn3+q46PEi9Bi4EjhfaGw nZ8xF/mRG2ma7POTz1/8vAqO3hHaCo9ZLtb6GQGxBXHJJ/ZrwyBS3Ho/1k/uEBIIeU/u oTspxFOP8P0Y5nSjIn+hwRURUxoNhD8ZE90roBb/ka/NXeWofgDrfZ3+GSygiJ/L4i/6 ZHkY63cNNxVS46hAM1FJMI/Mp2qTqoThZPL7BaOr7HMROjNvNmwseVATwSPb6nEStL8T Hs5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:mime-version:dkim-signature; bh=AFqjh8HzrXpWibQdtihVChZ+YGjEXJtHt987hhzQmKs=; fh=NYao5B/0xhmde4tgknaEyR8HcxUFhEZ2GnSObF937IM=; b=ZtNf4mPJhlxXWWLP/9WrYSDABFY6MY7KZj4mixTVtWv5sJRiQ4IovybpyFl0uHFLNe DGF2xqjIpPJp7M25AUgC6lTxgz3DbLAh8K9/WVAv2xWjNkRq4ZWG5B6jTymJbAg9E4OD wVFiWg7rMT+re69P600H5T1eiUkEpN4O98RQhNs5owj9Z4KnBMwXMoUijdFIWVC0mBVR KNRWgtLbOAMEfLEdHZl4BkNSwPonF/U9PGlAMjJkYJ1tu16Jy3e1LLS6L/uDuSuDGYW1 oe3BFTGNobdvvCln0EhDoGmpEmR/cwj9oSy1f05VINKDVs7Xa9dnA661f0HMUaPzqFNw rH6A==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787041540; x=1787646340; darn=vger.kernel.org; h=content-type:cc:to:subject:message-id:date:from:mime-version:from :to:cc:subject:date:message-id:reply-to:content-type; bh=AFqjh8HzrXpWibQdtihVChZ+YGjEXJtHt987hhzQmKs=; b=ZA39j0q9mwAJRkAWxKGtroIIAtNUI5Ng8vUyGEgmxB6VhWrqDh+MzBtG8Z2Df/jOoA sKW4ziafRZ89eiDGouyVqnt1PXk/1O3QLh6hAYgv5orGJZnbE0oge/pHh7CV+zuKT8G3 LYAxskEDS9JJNgDdFF9hk2gPRZjlg5mPuwHymO/N4LHUCFpWhP6EkSG1dJnInR4tos/K ZHnu9unsPTJl/Jrq0ih0Hc9tXYnz+gZx+gYRTK3A1CU0Zzr1fPiVcUDEj6bA3PZt1fD4 bD19Mspm7t+57cdMcddzuK7fYPodTw+qhnA2QNdgsfZbCH+MC0arDY6ZNDTbV0swWeGy ypRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787041540; x=1787646340; h=content-type:cc:to:subject:message-id:date:from:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=AFqjh8HzrXpWibQdtihVChZ+YGjEXJtHt987hhzQmKs=; b=KIbqfE/yfqWyCR0d4NppoPq7wBAVbFRx0MAYu9WXp5tay7qyqLzcetelMuZdnalGum NwE/U+Zyx92f6sFbChPGrzheVPYA6/evlfrrgZaMXk01sX8Jj/Ki7Hy4Q1EsQouR0Xrn efxAYo81tMCjPjrbT+/+PxZcFsAkk1TLLNbavctaYu0e1q5u9KzpnL33SELkW1be0j4x RU61hNXS/0KL10n6qD0ANjZpLxLPcvuOx6Qq2YrRS67npdGdEBRtQQj29hm51V5WCxTx 1/5oYmattdwd2NlcWAGvl2qLLHiU7LwrE78LuDeM8s1oWsxN4DqAiRL4Vrtf6KvyqDwW Pvnw== X-Forwarded-Encrypted: i=1; AHgh+RoO3Tk7MwuJcG2c4V3m/V8aOLlB27DC0/N5iSFioPe1FCQfSPWZOEisKZH7/K8/CeH4T9Gs+2GJezb3F2Q=@vger.kernel.org X-Gm-Message-State: AOJu0YyqxxH0Gmlwox/1kfSSvlFggJ8qljDdTCieOrYZ2eNVW84632i6 EbZ2zjPMlAiIEoy8qinJpHQuwFghgazMwTLWVRUeOMturvIDRJD+hv8ETz+IxGcQ5Ow/6OJJsxT lopRxEtDx6GtOTwQEFpqCsR2M3ajMcHk= X-Gm-Gg: AR+sD10Y3WSeEa4LVrEbsiwN1UWy9C3hG0sULnjWhLk/ZdMe/CS3WDSjBcs7c+XBrHt wwjE6zPh74Xmx8iuR6sXD+uLlzvg63nPenbbYgkAMnG9cj7Ht6bHVH06sRObPlI7o0IRFh7Z0dm U/7WtPzjY/vxdKcFmgPmM/v3youOzU+BePVExHZ2UwzvjnWst7fleDVmMXW2zItQTwln9pZHbGI AKJ0FtkFCpF6gPkNcomqsK+O5Tvzaz/Clb0LG1j1uFNlPptfP+qKFAnRXuzR3ECF+qMOtjleD1z +dGkPS9zK8qrEUSaP11Rd+gXcEjzuYaSuQzp7rYoBzaX2g== X-Received: by 2002:a05:651c:2103:b0:39a:ee64:36f4 with SMTP id 38308e7fff4ca-3a17516851bmr8813871fa.1.1787041539838; Tue, 18 Aug 2026 01:25:39 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: PANZ Date: Tue, 18 Aug 2026 10:25:27 +0200 X-Gm-Features: AcwNN1VRNToSE64_qqetuINC4oPAxG8EulkO8jxh2qP4RjtvZkYBWSdc6WMgTOM Message-ID: Subject: [PATCH] HID: asus: fix touchpad multitouch initialization regression To: jikos@kernel.org, bentiss@kernel.org Cc: denis.benato@linux.dev, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In Linux 7.1, commit 7253091766de ("HID: asus: do not abort probe when not necessary") and commit 0919db9f3583 ("HID: asus: always fully initialize devices") introduced regressions in the probe sequence for ASUS I2C/HID touchpads (such as on the ASUS E200HA): 1. asus_start_multitouch() was placed inside the claimed input check block: if (drvdata->input && (hdev->claimed & HID_CLAIMED_INPUT)) On ASUS touchpads, (hdev->claimed & HID_CLAIMED_INPUT) evaluates to false during asus_probe(), skipping asus_start_multitouch(). 2. The asus_report_id_init loop in asus_probe() was executed unconditionally for all devices, which sends keyboard initialization feature requests (asus_kbd_init) to touchpad endpoints, corrupting touchpad probe state. This patch fixes both issues by: - Skipping keyboard report initialization for touchpad devices (!drvdata->t= p). - Moving asus_start_multitouch() outside the claimed input check block so multitouch initialization is always executed for touchpads. Tested on ASUS E200HA (where touchpad functionality is fully restored) and ASUS VivoBook Flip 14 TP401MA (confirming zero regressions). Fixes: 7253091766de ("HID: asus: do not abort probe when not necessary") Fixes: 0919db9f3583 ("HID: asus: always fully initialize devices") Cc: stable@vger.kernel.org Signed-off-by: ppanzenboeck --- drivers/hid/hid-asus.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c index 3f5e96900b67..7f19ca1e5a1b 100644 --- a/drivers/hid/hid-asus.c +++ b/drivers/hid/hid-asus.c @@ -1294,12 +1294,14 @@ static int asus_probe(struct hid_device *hdev, const struct hid_device_id *id) return ret; } - for (int r =3D 0; r < ARRAY_SIZE(asus_report_id_init); r++) { - if (asus_has_report_id(hdev, asus_report_id_init[r])) { - ret =3D asus_kbd_init(hdev, asus_report_id_init[r]); - if (ret < 0) - hid_warn(hdev, "Failed to initialize 0x%x: %d.\n", - asus_report_id_init[r], ret); + if (!drvdata->tp) { + for (int r =3D 0; r < ARRAY_SIZE(asus_report_id_init); r++) { + if (asus_has_report_id(hdev, asus_report_id_init[r])) { + ret =3D asus_kbd_init(hdev, asus_report_id_init[r]); + if (ret < 0) + hid_warn(hdev, "Failed to initialize 0x%x: %d.\n", + asus_report_id_init[r], ret); + } } } @@ -1327,12 +1329,12 @@ static int asus_probe(struct hid_device *hdev, const struct hid_device_id *id) drvdata->input->name =3D "Asus TouchPad"; else drvdata->input->name =3D "Asus Keyboard"; + } - if (drvdata->tp) { - ret =3D asus_start_multitouch(hdev); - if (ret) - goto err_stop_hw; - } + if (drvdata->tp) { + ret =3D asus_start_multitouch(hdev); + if (ret) + goto err_stop_hw; } return 0; --=20 2.47.0