From patchwork Mon Feb 10 15:17:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Tomasz_Paku=C5=82a?= X-Patchwork-Id: 863968 Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (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 0576220485F; Mon, 10 Feb 2025 15:18:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200683; cv=none; b=Ok1vjJEaUDdVjEYVdJyOLl3tmDNaXQMUbo2Qd9XCSjWLiQkvtCCbUJTDSK0k/Vu1y2iKq+synH2ExW/RmV8iNgQex1zfQtVuaOy9wa1ONM48vo6SN/esCpm8gYxx+GrgxG0/nN/HJWHf0mxT1LzLoLpU/wCOCxkVy8HmmRz12PM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200683; c=relaxed/simple; bh=UWXrf7WRGjQt+teMGQjTFxcuMT0+nwb9fGdcN/5Iv4c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BpRU2+HyW+dIX/vNmoAcSpbm/lMQ9go0y4Ulf2zdT03bDJICOTwCPth1iSV4415vY+qUxbtQhFNPANYInPAOqX2Tu6zFUlR1mvWzCiooQFu0rP2LpdjtrE7Z48/AWTY7O28C5SF2Axbrt/o34fHUCHlnpQybXI4voJ7NwTfJz4A= ARC-Authentication-Results: i=1; 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=W57kOeYB; arc=none smtp.client-ip=209.85.208.180 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="W57kOeYB" Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-307de92bce2so3643001fa.3; Mon, 10 Feb 2025 07:18:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739200680; x=1739805480; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5qTyscYdIMBi+D+hFlA5BfNGHhqpENIsWeUFDb9bmok=; b=W57kOeYBU/zbnApOQl67ocRuNh1wTmBBVos6UdqH0VBK2UWo4nQz2CuyD7+HVv+RUu xRwCmIv+ogYRH5Rp8D6pSpVFNaYlgRHo2yAYE+VDBtfm1GGOU7jYLzUSifUi4lAEYB8n k1OXaF2Ye27cNLYXBrLI0ZrBg7zT/wI4xrYX2/O3UIAIjInvNREzcBRsJAQCM7jS1mMR UP38SVsgGQQjt8H4TkMt8/p80Hjng66jHULdR2k1Gnq6Hxlx/KHFF1q1WKKl3tagF97X 0fDNG+TCcCTOPd42g5QdKVKRHPpJdOvSLjpG5TYtIqEwd3w1jiXdOyYR4MzsAMAS+M0Y GlZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739200680; x=1739805480; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5qTyscYdIMBi+D+hFlA5BfNGHhqpENIsWeUFDb9bmok=; b=b7vfjMVd6lUH/2ZK6jigqJf2xiMDAr2y6xIBXwQKcZzeCDvkJWOIId2KhHUv6JLju+ aRNN4qZziVa21LgrhN44ConUlbo7ba6YBTYfQTGkMMH2Z3Y1SBhvcR/wCrtgG3Wb/wG+ QMowBYsBI33PTlh9sk+LoBrHlQB9UUaaDQhPnSa7wCclBFAwUfOV1mtEh6x91dCWMKZ+ meLFIDIc4KJfs+YP1sDZ0rubAWA+XvIQoUhesD/3FfH6mMOcCjFUJyk8HSqIvIdVauv9 DlcMPGk/GdNbEgNa7NWpyEgDpGTV7S5LB5eVHPOOKloTISkSx/VHBL8LLAUbC/AIgnMM ciwQ== X-Forwarded-Encrypted: i=1; AJvYcCUE2hiGjM0+kL+ijrGA+yRpp7i1syfTBy6RKuOSrsCrFrU4UvfAPDFfDxeLgNR4BvuGbnCln55R2XAO@vger.kernel.org, AJvYcCUrUeJUJguQWOe0SpD2mCToOnQeqsVOBnzRN6ZXnDvHESB2QuFj/TsUP7a0A4Oa0lOwIv3lcQvhCEvvKw==@vger.kernel.org X-Gm-Message-State: AOJu0Yy9Xxlc5jNs8CVtewoHhy+AgsULn2I3B6LZYoDeiO8ik0AdMEdL pyRSoyXcsNvTUdRwU8yTvj5TVFATMEWbZIMPlEcslDhOrKBNfcpf X-Gm-Gg: ASbGncsnCBkoUd0AQEr/o4poatrQ52hKeQprkRiO+4TgQjPKoFktryQv+CZo2K5Jgjs rWOw1it1mlcoyTpH10J17EKtToM2JsRGSSezJ363g3pvR2MU5tFz32OLQT9hdgPH7zfS6eDJ7Ko s/If+5iWzldI96zEQP3YMzVQkuTCT0FxC20/YoFAKvkhoToe5jVFmNjxEeAIjPFmIEU+KfZXMvH fy9IHmlqkHE4xA5wiWQR7h9Nk7hZJoRuhI4TbRBr8P94Ww6fXBc0cA0Fo8/L34YJxeUclTu2i8x YWB9iKYEm0aZz9qX6X+zO9NaRd5l7BsHCQzumIJeX8q7tXZVuOZmP+3kx7nSJQ== X-Google-Smtp-Source: AGHT+IEE8BmQ+rgd8T/Zk/DGc/J8RquLoY/M9tzcBuWqY08uADI1yJBh3T+e+FGrJVf7wGQ7/bBS8A== X-Received: by 2002:a05:651c:1503:b0:300:c10:7c33 with SMTP id 38308e7fff4ca-307e5a88818mr22115271fa.7.1739200679762; Mon, 10 Feb 2025 07:17:59 -0800 (PST) Received: from laptok.lan (89-64-31-140.dynamic.chello.pl. [89.64.31.140]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-307de178201sm12090561fa.16.2025.02.10.07.17.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 07:17:59 -0800 (PST) From: =?utf-8?q?Tomasz_Paku=C5=82a?= To: jikos@kernel.org, bentiss@kernel.org Cc: anssi.hannula@gmail.com, oleg@makarenk.ooo, linux-input@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v2 1/6] MAINTAINERS: Update hid-universal-pidff entry Date: Mon, 10 Feb 2025 16:17:49 +0100 Message-ID: <20250210151754.368530-2-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> References: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Add Makarenko Oleg as co-maintainer Signed-off-by: Tomasz Pakuła --- MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index a7c37bb8f083..174d25d87371 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10258,9 +10258,10 @@ F: include/linux/hid-sensor-* HID UNIVERSAL PIDFF DRIVER M: Tomasz Pakuła +M: Makarenko Oleg L: linux-input@vger.kernel.org S: Maintained -B: https://github.com/Lawstorant/hid-universal-pidff/issues +B: https://github.com/JacKeTUs/universal-pidff/issues F: drivers/hid/hid-universal-pidff.c HID VRC-2 CAR CONTROLLER DRIVER From patchwork Mon Feb 10 15:17:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Tomasz_Paku=C5=82a?= X-Patchwork-Id: 864686 Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) (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 E07BC2528EB; Mon, 10 Feb 2025 15:18:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200684; cv=none; b=Ck31HfkiNeecTZN5WpddUsducpRKaj+XIt+32MrAWc4bD1awbKr8hTmLnFfKPUABKPo3jOvqd/i/49MDMjdabXEqFnyIlQBHGUHTaWOuO5ViYlkFQoyALui5FGJArbe3aaSo14qqND5+HXBKa7ZAtjfcwc1nf9ieIeaclACMP30= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200684; c=relaxed/simple; bh=eUbxUt5xpTtxEzNiYKqCsSF7kyQ0xB70W44K9/NfqI8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=k6EIMKcnlFY6K45sWJtds1jPqQxL1EpNa6R0JH1r6753Nlqn12d/j6hUrJaRuB9SGNuOEfUR0uDjotcG8UD84Uluv2xHshHNa+Tf4gVTekh6kMeHZgKlc2ROsamGnLj69YgXsW0G9HXhZDxmc+gSfl/kuqIatDjADrYUWk/wpRs= ARC-Authentication-Results: i=1; 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=KSn2AkTR; arc=none smtp.client-ip=209.85.208.171 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="KSn2AkTR" Received: by mail-lj1-f171.google.com with SMTP id 38308e7fff4ca-308d9b7a888so2392891fa.1; Mon, 10 Feb 2025 07:18:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739200681; x=1739805481; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KSNQINkXkN6zTTIn4J3zlyOnrY9qbrfu5RjfBEk7Udo=; b=KSn2AkTRzFW3+/iXuT7/i6dZoNyvSs2BerOljgs26WRzGHtAdVxkO0SC/nXo6HxLnY V2Y06c15eEXa0etF+2TWgKpq4mFTlLKKrDfoIzZIIqLZK/Sojawn8CO37vBKhfYce0ih th8bABAYoZrLnGHknwO1SU7TsOpGkV/W29sj9iObJcx3p3ikiibtpV8imDeG7Rulz8Ah FPwV6lvMg0q+kB1x1Xz8TWWTxRAQBdvJMuVvJtJdOExMqsh5I3CvDcWvgdIRgV2MYvqt w+9adtQkAekMIrmCYx6xGc6+UlcbQhjfA4Qs26NKLGTsGooJkkKkYVRrNxnftytQ8EUD jgCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739200681; x=1739805481; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KSNQINkXkN6zTTIn4J3zlyOnrY9qbrfu5RjfBEk7Udo=; b=gn9iILxoc25vLGvMwziVUa1j/4PS6WClO0k39OdDDiq9STYAExoepCMgWhMFqAVH3K ZsWK+NTMbU4NtuhGiGOIbripuLEuewjxwR2sTbH/fvh3XyLrrOXdO9pfvXKAKQ5/0evZ hsWfPCO7V/fKQ3Lb3qGwDKVsWVUa1iJo1FXa3gZis9tOdT0U48TvPrSOde/ur59xY0N3 yH+Lz6nBktyo4QbMOU1Y9pENdv1HkYSxlvsZSdHEFx8BWZhVXJs9BLHIh0f8iCojByRy 30FfH595CRNtwtOmk2DAi1Hta1jR4CAYSAZD09sGq9WPTLMe6G1q2JjI2HqP+0pKZHD9 xfuw== X-Forwarded-Encrypted: i=1; AJvYcCUN7oTNiR62TF0Tl5wDNyItKE6Q6IxnAgSGW4hchrIJdrZ7m63fcm238NjuwQnj61+Bl0ZSxQUTzpRI@vger.kernel.org, AJvYcCXtd2HMqpdp18v6IbUD3MsNuWbum3wEk75KCmDHAVjpwoHgPYkJtXhwcdH3NWKwPsSfsUH8NcvVT7XytQ==@vger.kernel.org X-Gm-Message-State: AOJu0YwiZX2J6u8Ua/+PsoM19UY9nndsfEPg9C4rtvagmG0DxBa/EQt+ RXE161bLR+MHkV1S2Wne93U5rqbMZnGLoH23R4sta4YwIIP5u7bb X-Gm-Gg: ASbGncsRgXyYL8eAg/zqe0/acHXHpYEG2EfPEAe3UiZpAXTK7im5k2wcgAmjoAAPYTJ G3TC7kX49owZK79jvehORp+EaDFcxOZcy9M025wHZG04yKzDCFVajPko/xWoFA3pkK4eZtGIS/9 8ZvdCWhR/oIvURBNhNjqnkH4hWFWevqT296N29PyKcM5rsotpu4vCd4jpi+sAqp1UEdN2NckaAb tjlXLpttcT3FRdoqmaCADV744fVUySGh74Yi7Fh1nplStiV8XpCI6XjvR3sOjIUHE4jBySiuaDe 3YkWsCwqH+Hw+Bq9/NMZNFROe21rEc4QelD+iGVmB+iuQH3Fn1MqFbITpDoFUQ== X-Google-Smtp-Source: AGHT+IEA2Mu156xWr0A57Ha9a7hXCVlLPkCy8Jduz79q9IapbfTcnHwDRtTH7d+l+DOn7vYshEun1g== X-Received: by 2002:a2e:be89:0:b0:307:2aea:559a with SMTP id 38308e7fff4ca-307e5b8d945mr15470521fa.9.1739200680601; Mon, 10 Feb 2025 07:18:00 -0800 (PST) Received: from laptok.lan (89-64-31-140.dynamic.chello.pl. [89.64.31.140]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-307de178201sm12090561fa.16.2025.02.10.07.17.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 07:18:00 -0800 (PST) From: =?utf-8?q?Tomasz_Paku=C5=82a?= To: jikos@kernel.org, bentiss@kernel.org Cc: anssi.hannula@gmail.com, oleg@makarenk.ooo, linux-input@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v2 2/6] HID: pidff: Make sure to fetch pool before checking SIMULTANEOUS_MAX Date: Mon, 10 Feb 2025 16:17:50 +0100 Message-ID: <20250210151754.368530-3-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> References: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 As noted by Anssi some 20 years ago, pool report is sometimes messed up. This worked fine on many devices but casued oops on VRS DirectForce PRO. Here, we're making sure pool report is refetched before trying to access any of it's fields. While loop was replaced with a for loop + exit conditions were moved aroud to decrease the possibility of creating an infinite loop scenario. Signed-off-by: Tomasz Pakuła --- drivers/hid/usbhid/hid-pidff.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/drivers/hid/usbhid/hid-pidff.c b/drivers/hid/usbhid/hid-pidff.c index f23381b6e344..503f643b59ca 100644 --- a/drivers/hid/usbhid/hid-pidff.c +++ b/drivers/hid/usbhid/hid-pidff.c @@ -604,28 +604,25 @@ static void pidff_reset(struct pidff_device *pidff) } /* - * Refetch pool report + * Fetch pool report */ static void pidff_fetch_pool(struct pidff_device *pidff) { - if (!pidff->pool[PID_SIMULTANEOUS_MAX].value) - return; + int i; + struct hid_device *hid = pidff->hid; - int i = 0; - while (pidff->pool[PID_SIMULTANEOUS_MAX].value[0] < 2) { - hid_dbg(pidff->hid, "pid_pool requested again\n"); - hid_hw_request(pidff->hid, pidff->reports[PID_POOL], - HID_REQ_GET_REPORT); - hid_hw_wait(pidff->hid); + /* Repeat if PID_SIMULTANEOUS_MAX < 2 to make sure it's correct */ + for(i = 0; i < 20; i++) { + hid_hw_request(hid, pidff->reports[PID_POOL], HID_REQ_GET_REPORT); + hid_hw_wait(hid); - /* break after 20 tries with SIMULTANEOUS_MAX < 2 */ - if (i++ > 20) { - hid_warn(pidff->hid, - "device reports %d simultaneous effects\n", - pidff->pool[PID_SIMULTANEOUS_MAX].value[0]); - break; - } + if (!pidff->pool[PID_SIMULTANEOUS_MAX].value) + return; + if (pidff->pool[PID_SIMULTANEOUS_MAX].value[0] >= 2) + return; } + hid_warn(hid, "device reports %d simultaneous effects\n", + pidff->pool[PID_SIMULTANEOUS_MAX].value[0]); } /* From patchwork Mon Feb 10 15:17:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Tomasz_Paku=C5=82a?= X-Patchwork-Id: 863967 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) (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 026F8237A4D; Mon, 10 Feb 2025 15:18:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200685; cv=none; b=NUphkhDwlXAcgO4FSfE5rcGdUE3IN6tSE1l4QFLfXH9vSRdXdz4lJ5KE3amkB3qA9f+CyKVk5hmEM8YKFHMB8/xRaqpPn1uRweRBXNlVtxDoV5c3jqmSWbPe0VLo8mO2H4d88PinSbDxmauHL+jDUb67MOui33oML+CzAAp5ymg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200685; c=relaxed/simple; bh=/2y14Ruxtxo9MUCrsytA3GtR+RAG31etzZVJXvFwi+o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HZM/veQ9Sv/KnhGLZTz8/sEM58uacFYeoz7MR3yG8GaszNPZGmwmCeo5UB15LVpFOW9+ggELuk2/Y3OPoME2An+Z697H7Qvi6CMHINLN3X0r7JJIqY4BaOAmRWwOnOOKMi6b8eIbu4D/swjkyWQclSffWv8GPjiL4HgEGOYvc4E= ARC-Authentication-Results: i=1; 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=M5wyZbNe; arc=none smtp.client-ip=209.85.167.46 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="M5wyZbNe" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-5450f0b0a4fso111707e87.3; Mon, 10 Feb 2025 07:18:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739200682; x=1739805482; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zYA8Tb2sEo6J/5zZutdE08BWxw6HJFr40vcYgZhFRPw=; b=M5wyZbNebw7qkprVOCPW7Dj3yA243Cdw0rWgQiGi50JE7EggdYwLZenQn23dcHfLty XPv3uhd0JMAF5AHS8Dp+Utvj/A2Z5jALmFBPDAEhBM+TjgYpw0HbmtulDxM69esZ1uN1 vCRp29K8myMG4TtY8H2vBN3bIe1xOrMk3Uz0Aeh3EQoXUTUd/ipWPfXz3F7wpRCXMVWn eS8pMSUKBJrm/npIDZfNZeZCxOCJuPn8eJCDU/3Ra9lFxslNVXnhLiQA6xSDC1T592st 45/nL5ict7lGA+I15uStAxcfPT0SyUKeWz4JN5bnBpLhYgBhriJOy4JDWk3gAMUesfkv vZXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739200682; x=1739805482; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zYA8Tb2sEo6J/5zZutdE08BWxw6HJFr40vcYgZhFRPw=; b=PmU6zc68ZrUmnsuOYLDM38EAxhap2tk43mTPP61EoSna/O3IWRPdgpv2IcOGFS483w qRMD+rWQ0tElSzbTdVU0vvioJJL6qYQDS+pXdc1kkIBqsjq2ei3C7m423ImWUOp31Pm8 ZySgyMoxzqouNRMFS/2gMKp5HjiL1wIyBm5vkmuRLrwTvei18nwgfCfaBWTkpKMnRek8 aIWUFfXtfrBQG2Su+nbUqV1msgwXFY+eeQx2+XcNf9vGtPDm4+Z0GcU0U3iOi00YZCuu T1Dq8APdcsv4vRJthFnA/qO3TyBVxQLH/ro8Z07CYW3PjzZnvMS1qPbQceq7UpR6tdO1 WHxw== X-Forwarded-Encrypted: i=1; AJvYcCWMcZrsFioQtYzuKpQ654JL/y8PiAADwurxXSQ4s+N0fUBy6rcG8/H4Y8qloaR8wD+XJw9y/lh8voAl@vger.kernel.org, AJvYcCXrCFTrUNM1hq+3H2nfUefW5zzN29YrAXVC1aBvntWAbiQIB3RQANKsEkcroSdwh4ZlhnzT6DijY4nV9g==@vger.kernel.org X-Gm-Message-State: AOJu0YzuMH76FEcecU9BWw6tKA15ZEH83L4Wdn58olF3EDcLb54WN1UF 1hz38Xd8aF1c88U7fcaSNr7O2QaKpX9LNB/x8LpE/oqaN86/wH4a X-Gm-Gg: ASbGncvJUSwN1d0BsiQBkeTzQFqIrN2q6ER+2hN4huJR2/sxLrlKSzLYuxnOzgXRF+l i46C5uKijGD6HLXSQXfKT9gkiPm7/obVqQeGokiNPaRZLKHsmA/xtpAcGTj/XGHyKTPcqiKPluR TZXaBzaoULXjYw2SPzm15iutp+X2iP1fwJahAPB8A9NQZGqOslmxJMMTPc5KPXcMfNQwB0pv/ZN 5iF/lyjR7NZyWomH+xEAP55oIp5NEq1rAIEHkh5DYDx4zXxXzYRe1F4L85TZry0SwoFIFo8yaBS yl3ntd5B9yYiKnkPu5iAgSZJztC+wJFjnb03CvKUd2apcj2pQPO3m/iv8jYIJA== X-Google-Smtp-Source: AGHT+IFJqfxieTOO+SkQ8CW7HPaAqeM7ofR8HtgLCGUsRZ31Kuw6BzawfN1Cly52imV7yrLgyERYzA== X-Received: by 2002:a05:651c:1503:b0:300:c10:7c33 with SMTP id 38308e7fff4ca-307e5a88818mr22115591fa.7.1739200681896; Mon, 10 Feb 2025 07:18:01 -0800 (PST) Received: from laptok.lan (89-64-31-140.dynamic.chello.pl. [89.64.31.140]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-307de178201sm12090561fa.16.2025.02.10.07.18.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 07:18:01 -0800 (PST) From: =?utf-8?q?Tomasz_Paku=C5=82a?= To: jikos@kernel.org, bentiss@kernel.org Cc: anssi.hannula@gmail.com, oleg@makarenk.ooo, linux-input@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v2 3/6] HID: hid-universal-pidff: Add Asetek wheelbases support Date: Mon, 10 Feb 2025 16:17:51 +0100 Message-ID: <20250210151754.368530-4-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> References: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Adds Asetek vendor id and product ids for: - Invicta - Forte - La Prima - Tony Kanaan v2: - Misc spelling fix in driver loaded info Signed-off-by: Tomasz Pakuła --- drivers/hid/hid-ids.h | 6 ++++++ drivers/hid/hid-universal-pidff.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index dbac05649e9d..860adabbc625 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -189,6 +189,12 @@ #define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102 #define USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY 0x8302 +#define USB_VENDOR_ID_ASETEK 0x2433 +#define USB_DEVICE_ID_ASETEK_INVICTA 0xf300 +#define USB_DEVICE_ID_ASETEK_FORTE 0xf301 +#define USB_DEVICE_ID_ASETEK_LA_PRIMA 0xf303 +#define USB_DEVICE_ID_ASETEK_TONY_KANAAN 0xf306 + #define USB_VENDOR_ID_ASUS 0x0486 #define USB_DEVICE_ID_ASUS_T91MT 0x0185 #define USB_DEVICE_ID_ASUSTEK_MULTITOUCH_YFO 0x0186 diff --git a/drivers/hid/hid-universal-pidff.c b/drivers/hid/hid-universal-pidff.c index 1b713b741d19..69e8edd99682 100644 --- a/drivers/hid/hid-universal-pidff.c +++ b/drivers/hid/hid-universal-pidff.c @@ -104,7 +104,7 @@ static int universal_pidff_probe(struct hid_device *hdev, goto err; } - hid_info(hdev, "Universal pidff driver loaded sucesfully!"); + hid_info(hdev, "Universal pidff driver loaded sucessfully!"); return 0; err: @@ -179,6 +179,10 @@ static const struct hid_device_id universal_pidff_devices[] = { .driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY }, { HID_USB_DEVICE(USB_VENDOR_ID_LITE_STAR, USB_DEVICE_LITE_STAR_GT987_FF), .driver_data = HID_PIDFF_QUIRK_PERIODIC_SINE_ONLY }, + { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_INVICTA) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_FORTE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_LA_PRIMA) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ASETEK, USB_DEVICE_ID_ASETEK_TONY_KANAAN) }, { } }; MODULE_DEVICE_TABLE(hid, universal_pidff_devices); From patchwork Mon Feb 10 15:17:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Tomasz_Paku=C5=82a?= X-Patchwork-Id: 864685 Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) (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 B918123644F; Mon, 10 Feb 2025 15:18:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200687; cv=none; b=W6aYHpRO2RSsXamGuQUZ7116KFx2+MoSAsT5Ly0y6HIH5/5nTTweO9yOrKlTq+1nJ9XUYEiUrYKiBrvxqN4DWUzaErsIqbkrZIetvnRwmSy/zccDG5+yjKLgqbs99LRf6b/f5wcPWNV56E7gYVlAM5/P1GGUAT8c5A90lNZqbXI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200687; c=relaxed/simple; bh=nRxBurmjnHMw/vGUDVP2wxHK689v5mHBzLyMoF6QbWw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HQXH4y8+ZzbIuwROaMf//SCdiqazC/5BCt5vjLZRmv4fg+Po77BqXimf+EoSq3UHvEOQUPhLJK5f2HXoZ/XE7LNpBlN6PPjJ/l8XA9DCNx0iTyacG/7of0TN7LRIOUbfoqvTMSU1EP/dZ2y6dFI9qqhcR4MdyzWWRn4BsD/s4Ps= ARC-Authentication-Results: i=1; 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=U+4ZXQ1h; arc=none smtp.client-ip=209.85.208.170 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="U+4ZXQ1h" Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-308f3dbd305so592471fa.2; Mon, 10 Feb 2025 07:18:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739200684; x=1739805484; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ho1EtQ9JOBrhdEuIqqTI0cLqNwBpcXX1NGZ9DVyoA84=; b=U+4ZXQ1hxkzZvavFKpt09V+g56X+lhBzLKdkmLTuX6KN1OEtIfQaX5KJhZQfgVOAUy FVjuRFT1+HMiQVgvJY3JiUCFyjFydAfGVt/rKH1a+1w3FJF06hoh21Pe6ROlxG3cE+SA tVwFb6TW6F3JJnnm8VkVHBcSsByeWSobTYAys0WR/+K3DJiCmuY4bqe3zuiCZPF7u0c5 pUdbbC7ixag0oCUxy/GNeaExLzxUSAhywrjZD6xB/sKJQ1gsLy+kQiFQSLXwo0siOGhd +NBqoEeTWqN7ZpgbfGoy7asvnryHWUta8C2QGSoWHTFFO6nssUukKCRxQhTJacE5jTWi /PLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739200684; x=1739805484; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ho1EtQ9JOBrhdEuIqqTI0cLqNwBpcXX1NGZ9DVyoA84=; b=ocOkSJ2x2MeDph5r6waKzrOBNKCWKndWXHTv6DL/68Z5oTpgLadJ2emx22c0t359RO xnzOsm20awlRfqCr2L/7lsmFoXIfvip5IhW2H7h1Ew0I3xvkZuu5LCknG50b3y/hsLhD EWY9mZkBD/TMhiyhaGDQPGeByVZEljxSoiG5yIjgdcQJKBZGAfX/SwZjZxoYaw8J88gq HMaOykK9cN6tqNcnftb4NTyWhGVTZFZZjDNBWx/ESHD9j13tOF3Fqv+0hCSdNKkpBjj0 QNH8It7XS8vnsZDMiLkheFM1wAfvr/PWTpqpRX0O+9j0SWVdxn9sCp7/sGFb6HuPY3D8 xOTg== X-Forwarded-Encrypted: i=1; AJvYcCVMPFxBfzhQ4jyKq0YCn9Aqyx79zWxnfCu/Uw0B1WC50ai7sFAjnTOs9Zs0Ln6xCAWO0FN/eD9lH3hZiw==@vger.kernel.org, AJvYcCXDmGkT/ku5ql0//uJDsLFU5CCbY65mngy6N2zbDKAPrzoNNiQXK4ZPmhB7ZlTgmqzQ7HhNW1K4WOY4@vger.kernel.org X-Gm-Message-State: AOJu0YxGCPk4KDzZGOcFrjcr7YFoZz2WEti1GqZqMbMccf/hM9c/bwvr WPURC9KNCaMcQyAA1YHx+tfXyWrXgG+bgRr1Xk7ZW0psUFaLgECi X-Gm-Gg: ASbGncvTY466qcqawHJyUxn5kWmTCzv2sN9RffaQbHK65yLb1j/HcAJZunBobdHmg1f UC4pcvByAOZlR4AsjGibToLcqP+KQ2rA0GdmAEmSWi2W+ejyjrnflD7suH39m38yL1yJ1u+JRK8 55NRcZARLZ8W17D7MQsTyGI2G0LRxdlvOX2+NYXrn0DLak08un3o1UAelHnmXAlNbBe4ceceTAn dP6kTkwmYndf+jdfNUxThqGJz7u2NWn7WRYnbR5LHGhmVwGwDfDjcPZ2qk4ZWcbkLuB2u9EdpBM Du8VP99IRMGhyue5sRCPaX5yxlYQVhtJMs33lJuzoap1Gv4Cxo6Pico/zeN7gA== X-Google-Smtp-Source: AGHT+IESjN9tf2UEjncowfb2iC8ZWGmrQrIN3tFDQ/5x1NSZpdcF+brb6I3JdEhP3xO7SVvHXCWJLQ== X-Received: by 2002:a05:651c:198a:b0:308:f4cc:94fe with SMTP id 38308e7fff4ca-308f4cc9919mr2860831fa.7.1739200683536; Mon, 10 Feb 2025 07:18:03 -0800 (PST) Received: from laptok.lan (89-64-31-140.dynamic.chello.pl. [89.64.31.140]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-307de178201sm12090561fa.16.2025.02.10.07.18.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 07:18:03 -0800 (PST) From: =?utf-8?q?Tomasz_Paku=C5=82a?= To: jikos@kernel.org, bentiss@kernel.org Cc: anssi.hannula@gmail.com, oleg@makarenk.ooo, linux-input@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v2 4/6] HID: pidff: Comment and code style update Date: Mon, 10 Feb 2025 16:17:52 +0100 Message-ID: <20250210151754.368530-5-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> References: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Update comments to fully conform to the Linux comment styling. Define Linux infinite effect duration (0) as FF_INFINITE Signed-off-by: Tomasz Pakuła --- drivers/hid/usbhid/hid-pidff.c | 57 +++++++++++++++------------------- 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/drivers/hid/usbhid/hid-pidff.c b/drivers/hid/usbhid/hid-pidff.c index 503f643b59ca..fa9a98b7c28d 100644 --- a/drivers/hid/usbhid/hid-pidff.c +++ b/drivers/hid/usbhid/hid-pidff.c @@ -3,13 +3,9 @@ * Force feedback driver for USB HID PID compliant devices * * Copyright (c) 2005, 2006 Anssi Hannula + * Upgraded 2025 by Makarenko Oleg and Tomasz Pakuła */ -/* - */ - -/* #define DEBUG */ - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include "hid-pidff.h" @@ -25,9 +21,9 @@ /* Linux Force Feedback API uses miliseconds as time unit */ #define FF_TIME_EXPONENT -3 +#define FF_INFINITE 0 /* Report usage table used to put reports into an array */ - #define PID_SET_EFFECT 0 #define PID_EFFECT_OPERATION 1 #define PID_DEVICE_GAIN 2 @@ -48,12 +44,12 @@ static const u8 pidff_reports[] = { 0x21, 0x77, 0x7d, 0x7f, 0x89, 0x90, 0x96, 0xab, 0x5a, 0x5f, 0x6e, 0x73, 0x74 }; - -/* device_control is really 0x95, but 0x96 specified as it is the usage of -the only field in that report */ +/* + * device_control is really 0x95, but 0x96 specified + * as it is the usage of the only field in that report. + */ /* PID special fields */ - #define PID_EFFECT_TYPE 0x25 #define PID_DIRECTION 0x57 #define PID_EFFECT_OPERATION_ARRAY 0x78 @@ -61,7 +57,6 @@ the only field in that report */ #define PID_DEVICE_CONTROL_ARRAY 0x96 /* Value usage tables used to put fields and values into arrays */ - #define PID_EFFECT_BLOCK_INDEX 0 #define PID_DURATION 1 @@ -119,7 +114,6 @@ static const u8 pidff_device_gain[] = { 0x7e }; static const u8 pidff_pool[] = { 0x80, 0x83, 0xa9 }; /* Special field key tables used to put special field keys into arrays */ - #define PID_ENABLE_ACTUATORS 0 #define PID_DISABLE_ACTUATORS 1 #define PID_STOP_ALL_EFFECTS 2 @@ -176,8 +170,10 @@ struct pidff_device { struct pidff_usage effect_operation[sizeof(pidff_effect_operation)]; struct pidff_usage block_free[sizeof(pidff_block_free)]; - /* Special field is a field that is not composed of - usage<->value pairs that pidff_usage values are */ + /* + * Special field is a field that is not composed of + * usage<->value pairs that pidff_usage values are + */ /* Special field in create_new_effect */ struct hid_field *create_new_effect_type; @@ -222,7 +218,7 @@ static s32 pidff_clamp(s32 i, struct hid_field *field) static int pidff_rescale(int i, int max, struct hid_field *field) { return i * (field->logical_maximum - field->logical_minimum) / max + - field->logical_minimum; + field->logical_minimum; } /* @@ -282,9 +278,8 @@ static void pidff_set_time(struct pidff_usage *usage, u16 time) static void pidff_set_duration(struct pidff_usage *usage, u16 duration) { - /* Convert infinite length from Linux API (0) - to PID standard (NULL) if needed */ - if (duration == 0) + /* Infinite value conversion from Linux API -> PID */ + if (duration == FF_INFINITE) duration = PID_INFINITE; if (duration == PID_INFINITE) { @@ -302,16 +297,16 @@ static void pidff_set_envelope_report(struct pidff_device *pidff, struct ff_envelope *envelope) { pidff->set_envelope[PID_EFFECT_BLOCK_INDEX].value[0] = - pidff->block_load[PID_EFFECT_BLOCK_INDEX].value[0]; + pidff->block_load[PID_EFFECT_BLOCK_INDEX].value[0]; pidff->set_envelope[PID_ATTACK_LEVEL].value[0] = - pidff_rescale(envelope->attack_level > - S16_MAX ? S16_MAX : envelope->attack_level, S16_MAX, - pidff->set_envelope[PID_ATTACK_LEVEL].field); + pidff_rescale(envelope->attack_level > + S16_MAX ? S16_MAX : envelope->attack_level, S16_MAX, + pidff->set_envelope[PID_ATTACK_LEVEL].field); pidff->set_envelope[PID_FADE_LEVEL].value[0] = - pidff_rescale(envelope->fade_level > - S16_MAX ? S16_MAX : envelope->fade_level, S16_MAX, - pidff->set_envelope[PID_FADE_LEVEL].field); + pidff_rescale(envelope->fade_level > + S16_MAX ? S16_MAX : envelope->fade_level, S16_MAX, + pidff->set_envelope[PID_FADE_LEVEL].field); pidff_set_time(&pidff->set_envelope[PID_ATTACK_TIME], envelope->attack_length); @@ -702,9 +697,7 @@ static void pidff_playback_pid(struct pidff_device *pidff, int pid_id, int n) static int pidff_playback(struct input_dev *dev, int effect_id, int value) { struct pidff_device *pidff = dev->ff->private; - pidff_playback_pid(pidff, pidff->pid_id[effect_id], value); - return 0; } @@ -732,8 +725,11 @@ static int pidff_erase_effect(struct input_dev *dev, int effect_id) hid_dbg(pidff->hid, "starting to erase %d/%d\n", effect_id, pidff->pid_id[effect_id]); - /* Wait for the queue to clear. We do not want a full fifo to - prevent the effect removal. */ + + /* + * Wait for the queue to clear. We do not want + * a full fifo to prevent the effect removal. + */ hid_hw_wait(pidff->hid); pidff_playback_pid(pidff, pid_id, 0); pidff_erase_pid(pidff, pid_id); @@ -1239,7 +1235,6 @@ static int pidff_find_effects(struct pidff_device *pidff, set_bit(FF_FRICTION, dev->ffbit); return 0; - } #define PIDFF_FIND_FIELDS(name, report, strict) \ @@ -1370,12 +1365,10 @@ static int pidff_check_autocenter(struct pidff_device *pidff, hid_notice(pidff->hid, "device has unknown autocenter control method\n"); } - pidff_erase_pid(pidff, pidff->block_load[PID_EFFECT_BLOCK_INDEX].value[0]); return 0; - } /* From patchwork Mon Feb 10 15:17:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Tomasz_Paku=C5=82a?= X-Patchwork-Id: 863966 Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) (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 6ED7B223310; Mon, 10 Feb 2025 15:18:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200689; cv=none; b=eCD7giFGp2016Rds5mM25340Yt/Abm8iUVu17afUKACSTMGJcmymZ23p213p5LLawF34goqm7OJLnFtFjZoJwuGiV45Wc4sjQzon7t6LMqrvZ40ZHsZjUhF08VqQEE1v6GuPCECzb9Tq8xaYhguohS+OsqWwpSzvEnhCPLjZKcA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200689; c=relaxed/simple; bh=hEUOz4r4b063cF//KxITwPn2mFWBVo4aXCOANEAY1s8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MB/GF5Z4ulLG/HxJP4FJRcNPww5WGigKNKwwSiUJnr9PEStf/2bsO/qrXJYEY3lGi1VMi5PNBbFpcB44JJMhtUjIwgozaOpmBJyaiWjFKWiSL6MZqscFWwW5xGrGz1QKCISyiLPHgeK6S5/ZJ8r2liaIPA4ZC3HJ/HGlnXhAVPI= ARC-Authentication-Results: i=1; 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=McYskzSX; arc=none smtp.client-ip=209.85.208.171 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="McYskzSX" Received: by mail-lj1-f171.google.com with SMTP id 38308e7fff4ca-308e4bcd978so2238031fa.1; Mon, 10 Feb 2025 07:18:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739200685; x=1739805485; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=a0Vht8N9aFzyUUZgls7mKnoAuTHlmKN2cyTZvLxlmsU=; b=McYskzSXm95eA/kyKUGfhsNBHdAa9SZcbkzifkHnVD1B/L6Fm94kfE8BIA4Vkc3H3a ujKUoT0VRi2be4L2bBqe3klDwhwNHGOZl7lVUAwoNUwdHbtWR8yTqTKjvquCmKFsXpTC ewXHqcp66e4H8AlTH/Ro1bc0Yp2Fu9Rf+o+SZINf5gFS1p0mw58p8R8Ci8+B0Fk/m66d h2Bj25FDOn1vWRiVU63aul1+PbZMZl57HU/RtxpD/plTWH7gpiuEYRW7hvhfOpsz2CUS l0HTeq+fpVK6QA1g+Nm7L09hQVkvFCmViwZzDVGQqaYYEM126nMk7mRaEIO6CUASYO/x QCwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739200685; x=1739805485; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a0Vht8N9aFzyUUZgls7mKnoAuTHlmKN2cyTZvLxlmsU=; b=wFftui7TjO2KxKKIpXaYR15w9r4lCAVqQ27p8ud/jXXZVE1nMngZTlUZanq1RLrzZj 4U4lNePiDCN6EZZwfJKGqEVflfVnya0Y72pco83RUyg/OhE3Xwf9XID8PEqAC4+jS/C4 Tc9FMb4sLPY9rcGGwj1rNmXLy9UGiqf4f0ASnKUkfEAZh5zv1yqG9L2Oj1WpTQ9qkBoe xnLIGmcH0JUK332QkiHhN/WwUDvMhk9i6iWEVHEf4t8ODEAv8xewleeslKJj29WggOYo KfAvPh88Ka7OlV62vzUpd8XnLbFH/ionDdBbVHIum7HLf2AqD6QfYLITbCqk2mjNb7/o JLLw== X-Forwarded-Encrypted: i=1; AJvYcCX+luoEzOf3DAEGptMrQTXVvKjGr2gtIcDEHJEr4x+s6DLEjqXNKPI/AnAGGBOFx1svGbp9AbLYcn+eGQ==@vger.kernel.org, AJvYcCXbja2OUozm/Ij+D1wAw3kUQ17i6HiGvRC6r0y+zH3SmSrgG0GeTn99+zeSyX1rMxJx4mufPC2g2Lfp@vger.kernel.org X-Gm-Message-State: AOJu0Yz242L+1pY7DRONAd4DaJHA470WhKGufnAViyETKxlrAuLoGUUt n0LSq/3hYP1OflQeLG/nR7yIYENV/3jmmH/9o/7mOQo9GYrb2lnB X-Gm-Gg: ASbGncsrBzgz0Sle45FfpTkwV4gk7A7DLUH23E0a87wYLKfWukWWenh6Ew9kSubdHNR En/6Ua2K1yOl1ksI+BWg3Q06qNr4Q2pWLUbLx7JyD9XSDJHQLY7JnEIemWFI6+Cu8GHs1k112z3 DviTRRIcEM+0JmeL7GUKbfbD4GIi18aZENwwWciFzySLkb0QfGINCPSZIAITC5/F9RRjnizY7EU Kx9TeV26sB4Zyz9YW4fL9eyt0b4zOhDNPqsYy99aNbQVUVbYax5mIuMBSeU48AMcYl2xB1wED0V YF2IUeuqZRn3gs3i5asFi/qicwS3a47zxTpVtGNVEtlIIhYF7bPDcCT9k7gEeQ== X-Google-Smtp-Source: AGHT+IFAJ1rrft1I8aKeni7LYJc0oUgBmxNzG5D/ZcfnAGHT/2EQTbOnO73ZB21mwbTwMBqtqXtF7g== X-Received: by 2002:a2e:a556:0:b0:300:38ff:f8e1 with SMTP id 38308e7fff4ca-307e57c0305mr19374761fa.2.1739200685308; Mon, 10 Feb 2025 07:18:05 -0800 (PST) Received: from laptok.lan (89-64-31-140.dynamic.chello.pl. [89.64.31.140]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-307de178201sm12090561fa.16.2025.02.10.07.18.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 07:18:04 -0800 (PST) From: =?utf-8?q?Tomasz_Paku=C5=82a?= To: jikos@kernel.org, bentiss@kernel.org Cc: anssi.hannula@gmail.com, oleg@makarenk.ooo, linux-input@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v2 5/6] HID: pidff: Support device error response from PID_BLOCK_LOAD Date: Mon, 10 Feb 2025 16:17:53 +0100 Message-ID: <20250210151754.368530-6-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> References: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 If an error happens on the device, the driver will no longer fall into the trap of reading this status 60 times before it decides that this reply won't change to success/memory full. Greatly reduces communication overhead during device error situation. Signed-off-by: Tomasz Pakuła --- drivers/hid/usbhid/hid-pidff.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/hid/usbhid/hid-pidff.c b/drivers/hid/usbhid/hid-pidff.c index fa9a98b7c28d..f31b95cca3dd 100644 --- a/drivers/hid/usbhid/hid-pidff.c +++ b/drivers/hid/usbhid/hid-pidff.c @@ -138,7 +138,8 @@ static const u8 pidff_effect_types[] = { #define PID_BLOCK_LOAD_SUCCESS 0 #define PID_BLOCK_LOAD_FULL 1 -static const u8 pidff_block_load_status[] = { 0x8c, 0x8d }; +#define PID_BLOCK_LOAD_ERROR 2 +static const u8 pidff_block_load_status[] = { 0x8c, 0x8d, 0x8e}; #define PID_EFFECT_START 0 #define PID_EFFECT_STOP 1 @@ -666,6 +667,11 @@ static int pidff_request_effect_upload(struct pidff_device *pidff, int efnum) pidff->block_load[PID_RAM_POOL_AVAILABLE].value[0] : -1); return -ENOSPC; } + if (pidff->block_load_status->value[0] == + pidff->status_id[PID_BLOCK_LOAD_ERROR]) { + hid_dbg(pidff->hid, "device error during effect creation\n"); + return -EREMOTEIO; + } } hid_err(pidff->hid, "pid_block_load failed 60 times\n"); return -EIO; From patchwork Mon Feb 10 15:17:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Tomasz_Paku=C5=82a?= X-Patchwork-Id: 864684 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 7F3272236E8; Mon, 10 Feb 2025 15:18:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200690; cv=none; b=e2hXmHhOahYkFvaX1PgiJpuXGETYCM2qlBZtfMdr0qabUUUwSsCGvmncMMQdw01NwwI8d6FBcvlO21i0WIivsLKosQQWWD4Nj6M2tSAztsY3snG+dX4b2kJ9NlLMh0NPbunRxQWSvema0/p4OGQtazgc24G+Z7Y5XeH/Lb/J/J8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739200690; c=relaxed/simple; bh=lrfFErT0tODJ+pWALufWpOmVarM8hUIruhZ1V9/qYZ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Q8nPXzIX/xZqIg7AeJsNXkryvbNzTmbj8V/4jC5W+fIcNIb/hOGzgXdL6UDAPUh44EgyNFKfK4cWN7NBNDLZPpRVx8D57kodCvspEh/Y+a8vvFlwMwJ556/TY3ACfdYmpZKTNp71N/uufWuUR9BN+qmgKhgRvbJ/RqP0fgWiPNI= ARC-Authentication-Results: i=1; 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=arnAmiK4; arc=none 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="arnAmiK4" Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-308e4bcd978so2238051fa.1; Mon, 10 Feb 2025 07:18:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739200686; x=1739805486; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VdIl7nIKec+95hfoTV84ggU3uHfLmyJpZPBuhEb6jSI=; b=arnAmiK4nppDONM4vPmT+kaPTDaUptwPbmAP4fsUDbc7GxEIS1+d1KgBVAp/paUi55 +Fu4ovCS5eLnWAr2NJNasgeNdLh8LUX72HFbmmmf/IVvc5H5xAZwCZxPYm2B5Dfp2HwQ 4DaGZ6fP4q2WjGAeGAFrQ4eWmGEJAasE0VQOCY9p5SiF2XMTooEu4Afr8Q1Smrg+LTia HVpjCFWIb0T78JgxisQX5Kdv3p21OFZJnl9I3esmff5MpwRu8PIIM5rSMVnwWKrnGI1c gSj1PaQ7reZ2d9LQT7DSrYS/E7IP2QD2h6I/f9xJ7POmp2VcrQd86mICg/hJ01A/pcSN lDig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739200686; x=1739805486; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VdIl7nIKec+95hfoTV84ggU3uHfLmyJpZPBuhEb6jSI=; b=TTeaP/FMAPhdi8dyTgzAvmNYh16/0mmIRuiJD0PHup5nFDCpZztHYqK1lCV73xwupT 7fzwftJEqkiccsZSNzTGYrWFkZ+GaaDDLpHap0tAdeXA96+UuyflPPUcDGj6D/+GUp5f AeT6D7GhvUyEU8bBgcqt3Va52hjnGrmFrcLFbCKBBEaT2GoXeADTJFnFIXEaMqhSzO++ JqoN+BIc5q/HdlS+3BFBwlFMJl9pciyLUltY0PSGJrVrd699BkCVFgQBn1OhhYhHGpjR 1W4c4lWVzeyUrFpwAv5xlAoBUH7TGDxOMfs/cu7DVNx/ZpgED/hu86+mZcWOdI9ZL7EB FiMw== X-Forwarded-Encrypted: i=1; AJvYcCVq6mlKFcyW6RO55V9ndEHaWDORVZr+jEFvh2Jj4S8QD2xP1d41HtlY2vbZQ+xbeHq5rmePPqXXi8kilg==@vger.kernel.org, AJvYcCXwUMN48s9WxWLsYTae359+/ZxOCdYJfyub4Rsyn5fcbi6uMYkfmnH3MIeUeRe44Up8LanIWAZXH3rA@vger.kernel.org X-Gm-Message-State: AOJu0YyvqgngJfn5Jv4IgJSipGlZL1alARpb38VHAlyMqZQK/7ed+FJX NPyMoaoZyodmJB48/jzEwc2h9XobM2ZC6eeKUiyKH0MFUC792BL0 X-Gm-Gg: ASbGncvZxRmy4KHJx0TVu+PbaHxIxumcWC2KQ+eX3XS8Awy45Y06gjE+fCGcmIIH7MZ CPLJJ5/fJVjekRJkrF0QRdUT2fjlpbFK1MlImpv4dpaX6zAc94LPkKCHmvDelmGTo6HAOp1Z0cL 3zaP2q6iD6OAzg9g6vp+5cpVnxmPbFh0Gkk9EO0R0VirlRtcLX1y6sTkY3sPJi5VGGqXsAAwNSp wkhM6POmfmuY0yZa9kYhgHqDWjPgbJOitaS2hJUUh3If7lSQxmz8cTuhyXYH7REBGj0zt8wOlfd VN9eWaMDWV6uNkxu2mHf+WkMknX2CVUPjY+DGsU/QMi341yUEiQasCEe11K5eg== X-Google-Smtp-Source: AGHT+IGg7EnprS57JWRgy3CC++MOxRaZ0VOw7ROooNNSobT/G4recMQLicwe6mvwXgh2f4RJT8n2cg== X-Received: by 2002:a2e:878a:0:b0:308:e8c0:ebdd with SMTP id 38308e7fff4ca-308e8c0f16cmr5890261fa.7.1739200686424; Mon, 10 Feb 2025 07:18:06 -0800 (PST) Received: from laptok.lan (89-64-31-140.dynamic.chello.pl. [89.64.31.140]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-307de178201sm12090561fa.16.2025.02.10.07.18.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 07:18:06 -0800 (PST) From: =?utf-8?q?Tomasz_Paku=C5=82a?= To: jikos@kernel.org, bentiss@kernel.org Cc: anssi.hannula@gmail.com, oleg@makarenk.ooo, linux-input@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v2 6/6] HID: pidff: Remove redundant call to pidff_find_special_keys Date: Mon, 10 Feb 2025 16:17:54 +0100 Message-ID: <20250210151754.368530-7-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> References: <20250210151754.368530-1-tomasz.pakula.oficjalny@gmail.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Probably left out as a mistake after Anssi created the helper macro Signed-off-by: Tomasz Pakuła --- drivers/hid/usbhid/hid-pidff.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/hid/usbhid/hid-pidff.c b/drivers/hid/usbhid/hid-pidff.c index f31b95cca3dd..271f5d4e8b91 100644 --- a/drivers/hid/usbhid/hid-pidff.c +++ b/drivers/hid/usbhid/hid-pidff.c @@ -1159,10 +1159,6 @@ static int pidff_find_special_fields(struct pidff_device *pidff) return -1; } - pidff_find_special_keys(pidff->control_id, pidff->device_control, - pidff_device_control, - sizeof(pidff_device_control)); - PIDFF_FIND_SPECIAL_KEYS(control_id, device_control, device_control); if (!PIDFF_FIND_SPECIAL_KEYS(type_id, create_new_effect_type,