From patchwork Thu Jan 25 04:36:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "sandeep.cs" X-Patchwork-Id: 766196 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3811C883D for ; Thu, 25 Jan 2024 04:37:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157422; cv=none; b=Cmfhgha1KUNdBqx1M4E0LOm7fRZSpP5o/uXgbu2mMeKsGBn5Yuluh/S6KLvxK12VSOGveSeHFbXTIVDT4Q65w52mT6/B1ym2X/MPRAjugK1UsN1eTKeBGKF1/SLnzw93lsdm/oPbGhMxAsM1uAtutQJVvPrA74MdXTVUzeuPXg8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157422; c=relaxed/simple; bh=xfsQLJ/2vU+01sZsEX/6QiGDSwmC4PQVvgtOhSVA27M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=H1l9lAlAEWu4Ih8zjNqTQDWuhmIRp4FiqUY+jwtg1D2xaD4gJCrC+Nj/nHwxhB3OIR7jP258K8X8Ga5XyiruXw9ElbBIyXpUUemaYuj2Yz4hmhFsIX6h4K/lj05OvLolgQZ7Tp797U9MtJL1EGjA2xVbj1NSr8UYKwM4xCEDdLQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=JuNSNrst; arc=none smtp.client-ip=203.254.224.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="JuNSNrst" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20240125043657epoutp03710233e0fe10d7fae3bf137051a379af~tfSHL1TT20190401904epoutp03H for ; Thu, 25 Jan 2024 04:36:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240125043657epoutp03710233e0fe10d7fae3bf137051a379af~tfSHL1TT20190401904epoutp03H DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706157417; bh=FxRt1IQQ9RC5YoH6B7ssFdDYXaY2b2Jj8AIgAplcqlw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JuNSNrstCX6YtCsIJxTrGm3s446quYIXgJqM7dMYTXVSW8e4DgBVO9DM3wJyKosMe JZxCmOrGGEhSFe5FlDTY/ggepXB0dYZLnLnLpOnLzDiv80si55E4V+hDKR/b2rctlm 61+xEzLeiB5h9Q6dsNR05cUp4Cs+NswrwEs5FOl4= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20240125043657epcas5p2e8dcabc0d9f5640cf3243ccc69e1ab4b~tfSG5Cmqj2349523495epcas5p2x; Thu, 25 Jan 2024 04:36:57 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.178]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4TL7MV6TbTz4x9Pt; Thu, 25 Jan 2024 04:36:54 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 1C.E8.19369.665E1B56; Thu, 25 Jan 2024 13:36:54 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20240125043654epcas5p10aa2da156c494bbaebd0bd63a37c87aa~tfSD8Vyld0294902949epcas5p1a; Thu, 25 Jan 2024 04:36:54 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240125043654epsmtrp1ccfa2db4cf445bd7254aaf5488fa490a~tfSD7qyDD1583815838epsmtrp1x; Thu, 25 Jan 2024 04:36:54 +0000 (GMT) X-AuditID: b6c32a50-c99ff70000004ba9-0d-65b1e566f3a3 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id A4.4A.07368.665E1B56; Thu, 25 Jan 2024 13:36:54 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240125043652epsmtip28c11c214583483f9bc409b94a14d4064~tfSCfoI_g2197421974epsmtip2k; Thu, 25 Jan 2024 04:36:52 +0000 (GMT) From: Sandeep C S To: Jiri Kosina , Benjamin Tissoires Cc: gaudium.lee@samsung.com, ih0923.kim@samsung.com, suhyun_.kim@samsung.com, jitender.s21@samsung.com, junwan.cho@samsung.com, sandeep.cs@samsung.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [HID Patchsets for Samsung driver v4 1/6] HID Samsung : Broaden device compatibility in samsung driver. Date: Thu, 25 Jan 2024 10:06:24 +0530 Message-Id: <20240125043630.4031634-2-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240125043630.4031634-1-sandeep.cs@samsung.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAJsWRmVeSWpSXmKPExsWy7bCmpm7a042pBr/XG1lcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLVLZNRmpiSmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2S i0+ArltmDtA9SgpliTmlQKGAxOJiJX07m6L80pJUhYz84hJbpdSClJwCkwK94sTc4tK8dL28 1BIrQwMDI1OgwoTsjJtffjIWbBGouN25jq2B8QRvFyMnh4SAicTrIzcZuxi5OIQE9jBKLG57 zwLhfGKUaP98H8r5xihxrL2RFa5l3jaoxF5GibOvFzBDOJ1MEqcf7mUGqWIT0JLoO/KdCcQW EYiQeLdgEyOIzSxwnVHiwcNAEFtYoEjiQN9qFhCbRUBV4v6yY2A2r4CtxJdXc6C2yUvsP3gW bCangJ1E39I3TBA1ghInZz5hgZgpL9G8dTbYERICP9klFn/vYYFodpH4ueoR1CBhiVfHt7BD 2FISL/vb2CEauhkllt4+BuXMYJRo2XmVGaLKXuLn6wlsXYwcQCs0Jdbv0ofYxifR+/sJE0hY QoBXoqNNCKJaReJp125WmPnfT2xkgrA9JP7tvsIOCaGJjBKXZl9hnMAoPwvJE7OQPDELYdsC RuZVjFKpBcW56anJpgWGunmp5fDITc7P3cQITppaATsYV2/4q3eIkYmD8RCjBAezkgivienG VCHelMTKqtSi/Pii0pzU4kOMpsBgnsgsJZqcD0zbeSXxhiaWBiZmZmYmlsZmhkrivK9b56YI CaQnlqRmp6YWpBbB9DFxcEo1MNn+KNXvedQzsf+f7txrTfuXhTi3H+/cvN+9T+Pu01L1k9Jf c757e7+KZy5+pcPNsbKwtkrt84oOnq9zevkM1k70CPBqNSgzFfV8ud8wLk1n693ka6ab/6lf vGXRI1hk7WLQVWbSocH38uHbN+f19H+E9hydF3BhW9SfkGvLd7zN3+GofVsqtk8sX53jj4XL ErtjqnfLL/pzc1+WO74/f5MRi9mpi3x3MydKBVwyTl6bxrLZyyTFN2fntr6QTK5Ktl1u6oVT ee+KTjB91ZK8MiD7WFmrY4Vmn1dF1fSUKb5fYr6vD+2Im/zpn/2BL+yH9y9aEiiS3WlwxmzV He30DaYXfvYx8yvJTL8swH1ZiaU4I9FQi7moOBEATl15LSMEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsWy7bCSvG7a042pBrMmSlhcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGzS8/GQu2CFTc7lzH1sB4greLkZNDQsBE4vW8 bSxdjFwcQgK7GSVuHvvLDJGQklh1/R4jhC0ssfLfc3aIonYmiVu/17KBJNgEtCT6jnxnArFF BCIkpv1bywhSxCxwn1Fi6/6rYEXCAgUSK7qPsoPYLAKqEveXHWMBsXkFbCW+vJrDCrFBXmL/ wbNgmzkF7CT6lr4BGyoEVHP/zWxWiHpBiZMzn4D1MgPVN2+dzTyBUWAWktQsJKkFjEyrGCVT C4pz03OTDQsM81LL9YoTc4tL89L1kvNzNzGCQ11LYwfjvfn/9A4xMnEwHmKU4GBWEuE1Md2Y KsSbklhZlVqUH19UmpNafIhRmoNFSZzXcMbsFCGB9MSS1OzU1ILUIpgsEwenVANTxcmuzc6n OJft2/v4YkicysFoPfNtRzvNve3ql1ucqMm+8OHNL/3pV7uC27+xCWyVWLZI9/Ksx96Lbdjk 9svmx11+Yx6yXJVld4fKsjeeLw6+snod2+ZSxLh8nXd8S87RWfO2hHzLebv1yV7Z6HOrr+qI /bxQuHm5mO2HOwl1J1Nys/d//X5u9tw32XFR1rvk7L/NDDq84rzFpJndz7esW1z/+QmLyVfz 7oyCbbumMLirzZM+oeTlJeC+d1LJkoOfexduan7Atl0/4WODk2hBvdQv3aWlEup/k4JfHbi9 OdzO3lC0X1n0IoeofsVZs5u/zV74Hl7/bv6M98026tqLHr1K1ZnIkfvIL+WMzPqociWW4oxE Qy3mouJEAFscY7HkAgAA X-CMS-MailID: 20240125043654epcas5p10aa2da156c494bbaebd0bd63a37c87aa X-Msg-Generator: CA CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240125043654epcas5p10aa2da156c494bbaebd0bd63a37c87aa References: <20240125043630.4031634-1-sandeep.cs@samsung.com> The USB validation check has been moved wherever its required. Earlier Samsung driver only handles USB HID devices and returns an error if it encounters a Bluetooth type of HID device. This changes improves driver compatibility and extends its support for a wide range of devices. Signed-off-by: Sandeep C S Signed-off-by: Junwan Cho Signed-off-by: Jitender Sajwan --- drivers/hid/hid-samsung.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index cf5992e97094..3a8756232731 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -128,7 +128,7 @@ static int samsung_kbd_mouse_input_mapping(struct hid_device *hdev, static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE == hdev->product) + if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE == hdev->product && hid_is_usb(hdev)) rdesc = samsung_irda_report_fixup(hdev, rdesc, rsize); return rdesc; } @@ -139,7 +139,7 @@ static int samsung_input_mapping(struct hid_device *hdev, struct hid_input *hi, { int ret = 0; - if (USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE == hdev->product) + if (USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE == hdev->product && hid_is_usb(hdev)) ret = samsung_kbd_mouse_input_mapping(hdev, hi, field, usage, bit, max); @@ -152,9 +152,6 @@ static int samsung_probe(struct hid_device *hdev, int ret; unsigned int cmask = HID_CONNECT_DEFAULT; - if (!hid_is_usb(hdev)) - return -EINVAL; - ret = hid_parse(hdev); if (ret) { hid_err(hdev, "parse failed\n"); @@ -162,6 +159,10 @@ static int samsung_probe(struct hid_device *hdev, } if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE == hdev->product) { + if (!hid_is_usb(hdev)) { + ret = -EINVAL; + goto err_free; + } if (hdev->rsize == 184) { /* disable hidinput, force hiddev */ cmask = (cmask & ~HID_CONNECT_HIDINPUT) | From patchwork Thu Jan 25 04:36:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "sandeep.cs" X-Patchwork-Id: 767056 Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 772AF10A0E for ; Thu, 25 Jan 2024 04:37:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.34 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157432; cv=none; b=YCGUStsUkIbC4eDjRbuT5mE92vk0VN0rJB72VQTGs1Fnn87JooTkSemUyw9Do/PfKBURxNnvjc91NuPayXVjUaivEV0+3Bq0MEWl+DGMfep/mA9j7P7xlu/2iqUNla8mcUCpSATW24Atqh5eNSye8+U2/G42mfoPs9e4GI7AYvQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157432; c=relaxed/simple; bh=rmEWhlVDpeIv0NBvUoVUkcUuNtoCG83x6jLTykAx0mI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=Hot6/+8VNZXCK29xz6T6kcu2uDy1YSg7P6Fch3QwJtMdr4RD2Iiw8lnlMVPRtRiw1nYumeAicf25UPUllonY6erEBTG8+6RL83/C7dOWLJKP9Ie8M3PvNLeGJ/+szaUcAr20nluMUDOG3uQkH54umPC13qGbBV4wtAEn6IYw4dQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=FnQmKy8X; arc=none smtp.client-ip=203.254.224.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="FnQmKy8X" Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20240125043705epoutp048a23de5c52b9a0bd9cab961a6b501a3b~tfSNy2fIj1017710177epoutp04V for ; Thu, 25 Jan 2024 04:37:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20240125043705epoutp048a23de5c52b9a0bd9cab961a6b501a3b~tfSNy2fIj1017710177epoutp04V DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706157425; bh=KW0GPlc8JiP+I2GAgypKX/jwr3P9ZdZ55AOnVvit4IE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FnQmKy8X2fB2W9KnM9z43KKEIYAyNKSnd30fzG2rhtcKVcUXHmCg2MHvYjpE1ONy7 QSBij66y7d61n2kGDauPTp5SeqdDQ1g6x7l46Hocz3ErXNUAG6OYYfEjlMcNclZ+FU bihsuo+BENsFTotUO02RzV+1hBjTJUWT/Tx7gqCU= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20240125043704epcas5p4860f2846d3f44b15c3d426a8fe32fe67~tfSNfEfVB2513325133epcas5p4E; Thu, 25 Jan 2024 04:37:04 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.180]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4TL7Mg0Y0Qz4x9Q8; Thu, 25 Jan 2024 04:37:03 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 93.C6.09634.E65E1B56; Thu, 25 Jan 2024 13:37:02 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20240125043702epcas5p33d9ef989dc51276185972d4517ba80fd~tfSLl3TTk0575905759epcas5p3Z; Thu, 25 Jan 2024 04:37:02 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240125043702epsmtrp10f457bf9d1f2c4998f7b9d6a583b78cf~tfSLkXaOM1583815838epsmtrp1U; Thu, 25 Jan 2024 04:37:02 +0000 (GMT) X-AuditID: b6c32a49-eebff700000025a2-4e-65b1e56ea263 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id 1B.DB.18939.E65E1B56; Thu, 25 Jan 2024 13:37:02 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240125043701epsmtip2c0ee6edc7c3236fb782a9d45485830e1~tfSKG6JX12197421974epsmtip2r; Thu, 25 Jan 2024 04:37:00 +0000 (GMT) From: Sandeep C S To: Jiri Kosina , Benjamin Tissoires Cc: gaudium.lee@samsung.com, ih0923.kim@samsung.com, suhyun_.kim@samsung.com, jitender.s21@samsung.com, junwan.cho@samsung.com, sandeep.cs@samsung.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [HID Patchsets for Samsung driver v4 2/6] HID: Samsung : Fix the checkpatch complain. Rewritten code using memcmp where applicable. Date: Thu, 25 Jan 2024 10:06:25 +0530 Message-Id: <20240125043630.4031634-3-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240125043630.4031634-1-sandeep.cs@samsung.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnk+LIzCtJLcpLzFFi42LZdlhTSzfv6cZUg21rbSyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xvmr/5kLTmpVTFp2g6WBcYtyFyMnh4SAicTjqWdYuxi5OIQEdjNKPP8E 43xilNjQMgPB+Xx1FztMy6P9FxkhEjsZJc4+fcwC4XQySUzY/ZQJpIpNQEui78h3MFtEIELi 3YJNjCA2s8B1RokHDwNBGoQF+hglnl7+DTaWRUBV4vvSk8wgNq+ArcSU81+YIdbJS+w/eBbM 5hSwk+hb+oYJokZQ4uTMJywQQ+UlmrfOZgYZKiHwlV3iy8N5QEUcQI6LxIyl3hBzhCVeHd8C 9YKUxMv+NnaI+m5GiaW3j0E5MxglWnZehdpsL/Hz9QQ2kEHMApoS63fpQyzjk+j9/QRqPq9E R5sQRLWKxNOu3aww87+f2MgEYXtIHLl9HxpCExklWuf8YJ7AKD8LyQ+zkPwwC2HbAkbmVYyS qQXFuempxaYFhnmp5fC4Tc7P3cQITplanjsY7z74oHeIkYmD8RCjBAezkgivienGVCHelMTK qtSi/Pii0pzU4kOMpsBAnsgsJZqcD0zaeSXxhiaWBiZmZmYmlsZmhkrivK9b56YICaQnlqRm p6YWpBbB9DFxcEo1MJUV6LR36OSuW/6yu3al57870c+q/+/kbF9YxvngiMTmm8b9VgGPzaOW PGlR2brNWKVzTmgRj+0fLtmX536fqfaeqLHMS8ClVU92QvCLVYz7Hs+b5sFRGsEeolj5IL/j 4Zb+azN1ZBeckbykOOf9vkV2/ya9eHvgQ5DCwpUBH049T2ZlSH0r5tgpx/avPFLnneUSndfx 54wemT/sWLzH7pL9KrPMKRGvjwRf+WL/3CxnSkvsrl+XOBLCHDokp3xZsuBz0T8b/fZzzRwy Iqoxv7gutz36f7T1QnTeyYe1rCvTp2vyPyg6vsnG2EVV4uRynsoDfjaLYiWXC7SlSoYd3rWY 9WOe5Y0/wuKVPpm/+5RYijMSDbWYi4oTATDmAN8iBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLLMWRmVeSWpSXmKPExsWy7bCSvG7e042pBs+PqVhcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfG+av/mQtOalVMWnaDpYFxi3IXIyeHhICJxKP9 FxlBbCGB7YwSh57ZQcSlJFZdv8cIYQtLrPz3nL2LkQuopp1JYu7PS2wgCTYBLYm+I9+ZQGwR gQiJaf/WMoIUMQvcZ5TYuv8qG4gjLNDDKPH38j1mkCoWAVWJ70tPgtm8ArYSU85/YYZYIS+x /+BZMJtTwE6ib+kbJoiTbCXuv5nNClEvKHFy5hMWEJsZqL5562zmCYwCs5CkZiFJLWBkWsUo mlpQnJuem1xgqFecmFtcmpeul5yfu4kRHOJaQTsYl63/q3eIkYmD8RCjBAezkgivienGVCHe lMTKqtSi/Pii0pzU4kOM0hwsSuK8yjmdKUIC6YklqdmpqQWpRTBZJg5OqQampQKTjl0Q99V7 +KgpcILUBt3iL0v+eRhNmNLaed+iscZyXeK55b6nP65ecqgn7uLP1eGa0ZE9Sze+WzeFT+ut n4npI2fezw+Kc2f+i+k7wNjs8UIi8rxXeLDHK6uAD9bRW98m6H7T/bXx3+FspS0tD5/qXe66 ofQskYXb/fQ//un6+35+mVnnFjuz/HeRZM2S719WN97wuKrxNLuMv215hTL3hcjEjxda5A0n 3F/Dxxk+c47B+WP5/IcXrdssyn5PrE3VwPJR7Y/SD6KdvL7ZSpNc1WLcV21e8naOWsq5A1P3 MxVvnKgic4+Jd6e4YNOmBLNjQZsLWqblXyyrCXPZ8tms7U1uB7OMbZaBlHO3EktxRqKhFnNR cSIATNyjseACAAA= X-CMS-MailID: 20240125043702epcas5p33d9ef989dc51276185972d4517ba80fd X-Msg-Generator: CA CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240125043702epcas5p33d9ef989dc51276185972d4517ba80fd References: <20240125043630.4031634-1-sandeep.cs@samsung.com> Resolved warnings found by checkpatch.pl script. Signed-off-by: Sandeep C S Signed-off-by: Junwan Cho Signed-off-by: Jitender Sajwan --- drivers/hid/hid-samsung.c | 80 +++++++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index 3a8756232731..97d0bf7d4d7e 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -58,33 +58,25 @@ static inline void samsung_irda_dev_trace(struct hid_device *hdev, static __u8 *samsung_irda_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (*rsize == 184 && rdesc[175] == 0x25 && rdesc[176] == 0x40 && - rdesc[177] == 0x75 && rdesc[178] == 0x30 && - rdesc[179] == 0x95 && rdesc[180] == 0x01 && + if (*rsize == 184 && !memcmp(&rdesc[175], "\x25\x40\x75\x30\x95\x01", 6) && rdesc[182] == 0x40) { samsung_irda_dev_trace(hdev, 184); rdesc[176] = 0xff; rdesc[178] = 0x08; rdesc[180] = 0x06; rdesc[182] = 0x42; - } else - if (*rsize == 203 && rdesc[192] == 0x15 && rdesc[193] == 0x0 && - rdesc[194] == 0x25 && rdesc[195] == 0x12) { + } else if (*rsize == 203 && !memcmp(&rdesc[192], "\x15\x00\x25\x12", 4)) { samsung_irda_dev_trace(hdev, 203); - rdesc[193] = 0x1; - rdesc[195] = 0xf; - } else - if (*rsize == 135 && rdesc[124] == 0x15 && rdesc[125] == 0x0 && - rdesc[126] == 0x25 && rdesc[127] == 0x11) { + rdesc[193] = 0x01; + rdesc[195] = 0x0f; + } else if (*rsize == 135 && !memcmp(&rdesc[124], "\x15\x00\x25\x11", 4)) { samsung_irda_dev_trace(hdev, 135); - rdesc[125] = 0x1; - rdesc[127] = 0xe; - } else - if (*rsize == 171 && rdesc[160] == 0x15 && rdesc[161] == 0x0 && - rdesc[162] == 0x25 && rdesc[163] == 0x01) { + rdesc[125] = 0x01; + rdesc[127] = 0x0e; + } else if (*rsize == 171 && !memcmp(&rdesc[160], "\x15\x00\x25\x01", 4)) { samsung_irda_dev_trace(hdev, 171); - rdesc[161] = 0x1; - rdesc[163] = 0x3; + rdesc[161] = 0x01; + rdesc[163] = 0x03; } return rdesc; } @@ -99,7 +91,7 @@ static int samsung_kbd_mouse_input_mapping(struct hid_device *hdev, struct usb_interface *intf = to_usb_interface(hdev->dev.parent); unsigned short ifnum = intf->cur_altsetting->desc.bInterfaceNumber; - if (1 != ifnum || HID_UP_CONSUMER != (usage->hid & HID_USAGE_PAGE)) + if (ifnum != 1 || HID_UP_CONSUMER != (usage->hid & HID_USAGE_PAGE)) return 0; dbg_hid("samsung wireless keyboard/mouse input mapping event [0x%x]\n", @@ -107,17 +99,39 @@ static int samsung_kbd_mouse_input_mapping(struct hid_device *hdev, switch (usage->hid & HID_USAGE) { /* report 2 */ - case 0x183: samsung_kbd_mouse_map_key_clear(KEY_MEDIA); break; - case 0x195: samsung_kbd_mouse_map_key_clear(KEY_EMAIL); break; - case 0x196: samsung_kbd_mouse_map_key_clear(KEY_CALC); break; - case 0x197: samsung_kbd_mouse_map_key_clear(KEY_COMPUTER); break; - case 0x22b: samsung_kbd_mouse_map_key_clear(KEY_SEARCH); break; - case 0x22c: samsung_kbd_mouse_map_key_clear(KEY_WWW); break; - case 0x22d: samsung_kbd_mouse_map_key_clear(KEY_BACK); break; - case 0x22e: samsung_kbd_mouse_map_key_clear(KEY_FORWARD); break; - case 0x22f: samsung_kbd_mouse_map_key_clear(KEY_FAVORITES); break; - case 0x230: samsung_kbd_mouse_map_key_clear(KEY_REFRESH); break; - case 0x231: samsung_kbd_mouse_map_key_clear(KEY_STOP); break; + case 0x183: + samsung_kbd_mouse_map_key_clear(KEY_MEDIA); + break; + case 0x195: + samsung_kbd_mouse_map_key_clear(KEY_EMAIL); + break; + case 0x196: + samsung_kbd_mouse_map_key_clear(KEY_CALC); + break; + case 0x197: + samsung_kbd_mouse_map_key_clear(KEY_COMPUTER); + break; + case 0x22b: + samsung_kbd_mouse_map_key_clear(KEY_SEARCH); + break; + case 0x22c: + samsung_kbd_mouse_map_key_clear(KEY_WWW); + break; + case 0x22d: + samsung_kbd_mouse_map_key_clear(KEY_BACK); + break; + case 0x22e: + samsung_kbd_mouse_map_key_clear(KEY_FORWARD); + break; + case 0x22f: + samsung_kbd_mouse_map_key_clear(KEY_FAVORITES); + break; + case 0x230: + samsung_kbd_mouse_map_key_clear(KEY_REFRESH); + break; + case 0x231: + samsung_kbd_mouse_map_key_clear(KEY_STOP); + break; default: return 0; } @@ -128,7 +142,7 @@ static int samsung_kbd_mouse_input_mapping(struct hid_device *hdev, static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE == hdev->product && hid_is_usb(hdev)) + if (hdev->product == USB_DEVICE_ID_SAMSUNG_IR_REMOTE && hid_is_usb(hdev)) rdesc = samsung_irda_report_fixup(hdev, rdesc, rsize); return rdesc; } @@ -139,7 +153,7 @@ static int samsung_input_mapping(struct hid_device *hdev, struct hid_input *hi, { int ret = 0; - if (USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE == hdev->product && hid_is_usb(hdev)) + if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE && hid_is_usb(hdev)) ret = samsung_kbd_mouse_input_mapping(hdev, hi, field, usage, bit, max); @@ -158,7 +172,7 @@ static int samsung_probe(struct hid_device *hdev, goto err_free; } - if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE == hdev->product) { + if (hdev->product == USB_DEVICE_ID_SAMSUNG_IR_REMOTE) { if (!hid_is_usb(hdev)) { ret = -EINVAL; goto err_free; From patchwork Thu Jan 25 04:36:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "sandeep.cs" X-Patchwork-Id: 766195 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 154D010A3A for ; Thu, 25 Jan 2024 04:37:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157441; cv=none; b=ZwvYHZ6PtTKpaZbsQo7KmLX0lm7YkSA8BQRTDXfE32a5ZAdLxvA641nWtgwuZ5HPF8EqsyhVyabzXn9acgCpn/S9hG4UedGMVY9RMv77hgqQW3NW9vLTTPyDyNUn2AHnAidSGGy/Axm/BAuq+FMSxa4h8LhAjOygX5g5cDFvTFA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157441; c=relaxed/simple; bh=RErscL7igkrg2TYIr7QQtxltUVjpmwgtImO9C3vZ9Jo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=BTX8kcgiPY+OucjyQkJY2kiZKrIKXodjhXN8Uft1J/bhOVjwC34c8PfYh0dlhogkuru7XjBHnx+GnBG8738vWKFCyADs4YEJLWLfFRuD4KIQwYZPI4XkJDeaUGvp712kkE3MsYmxhL/7RSM1QuQT+YGRHAn+vUr6nI5J3L4Bbf8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=tYXXNZDI; arc=none smtp.client-ip=203.254.224.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="tYXXNZDI" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20240125043717epoutp033fa9954697355dd8f196c144a6304189~tfSZDKP7O0190001900epoutp03W for ; Thu, 25 Jan 2024 04:37:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240125043717epoutp033fa9954697355dd8f196c144a6304189~tfSZDKP7O0190001900epoutp03W DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706157437; bh=583dwtAg42kW3WOPS9CCwl4vBTavsqUFWB6XNKTada0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tYXXNZDIYaG1XboogKFhSSE7iTclOPeTqJvhvFuSfepxj441olb4pOgoGh8H+oMhW vKWkL+RiaC0WbCDVCan3RCSSFLObIhPzUouTTAgtlkW1L64recbVDZQSE987YQ8mEf hy8+/vXAeauADsOM9NTKNaCgiZrgoQ8RGPYo6EUo= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240125043716epcas5p33b5d3658e2bdbfb887490edcc47c2e10~tfSYsQuIt0575905759epcas5p3R; Thu, 25 Jan 2024 04:37:16 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.178]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4TL7Mt0RXYz4x9Pr; Thu, 25 Jan 2024 04:37:14 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 0E.F8.19369.975E1B56; Thu, 25 Jan 2024 13:37:13 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240125043713epcas5p29fff47db75cec104be21265031128bf4~tfSVx4n4l2130721307epcas5p2O; Thu, 25 Jan 2024 04:37:13 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240125043713epsmtrp10026edf8a58e9d9b74d3917b28230df6~tfSVxN4x41631016310epsmtrp1X; Thu, 25 Jan 2024 04:37:13 +0000 (GMT) X-AuditID: b6c32a50-9e1ff70000004ba9-50-65b1e5799684 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 01.E4.08755.975E1B56; Thu, 25 Jan 2024 13:37:13 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240125043711epsmtip233a5e95300e7a8e99d757091c4adc099~tfSUQ5n_x2197421974epsmtip21; Thu, 25 Jan 2024 04:37:11 +0000 (GMT) From: Sandeep C S To: Jiri Kosina , Benjamin Tissoires Cc: gaudium.lee@samsung.com, ih0923.kim@samsung.com, suhyun_.kim@samsung.com, jitender.s21@samsung.com, junwan.cho@samsung.com, sandeep.cs@samsung.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [HID Patchsets for Samsung driver v4 3/6] HID: Samsung : Add Samsung wireless keyboard support. Date: Thu, 25 Jan 2024 10:06:26 +0530 Message-Id: <20240125043630.4031634-4-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240125043630.4031634-1-sandeep.cs@samsung.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAJsWRmVeSWpSXmKPExsWy7bCmum7l042pBleOWVpcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLVLZNRmpiSmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2S i0+ArltmDtA9SgpliTmlQKGAxOJiJX07m6L80pJUhYz84hJbpdSClJwCkwK94sTc4tK8dL28 1BIrQwMDI1OgwoTsjCkTnjIVfFCpuLa7k62B8bhcFyMnh4SAicSKW3NYuxi5OIQE9jBKnFq/ iQ3C+cQocWDufijnG6PExRlX2GBaDt2awAiR2MsosXTVL3YIp5NJ4uHSmewgVWwCWhJ9R74z gdgiAhES7xZsYgSxmQWuM0o8eBgIYgsLZEl8+vGGGcRmEVCV+PvlK1gNr4CtxNtPfawQ2+Ql 9h88C1bDKWAn0bf0DRNEjaDEyZlPWCBmyks0b53NDHKEhMBPdomn/V1Qp7pILLy+GmqQsMSr 41vYIWwpiZf9bewQDd1AL9w+BuXMYJRo2XmVGaLKXuLn6wlAkziAVmhKrN+lD7GNT6L39xMm kLCEAK9ER5sQRLWKxNOu3aww87+f2MgEYXtIHLx8ABpCExkl/hzawTSBUX4WkidmIXliFsK2 BYzMqxilUguKc9NTk00LDHXzUsvhkZucn7uJEZw0tQJ2MK7e8FfvECMTB+MhRgkOZiURXhPT jalCvCmJlVWpRfnxRaU5qcWHGE2BwTyRWUo0OR+YtvNK4g1NLA1MzMzMTCyNzQyVxHlft85N ERJITyxJzU5NLUgtgulj4uCUamCq37e8rf6botPZSTylh9WU/VP9/fcLXpbnPuF49UjcPz7H E5ZnFT8FZVdWxfhrlls+NJu/qoKtMoex6MuEzG2STxZ57bvK5xgbXFWptX1VbJt2C0/+yf1e /SfNPHdaL8iP+tBhOEHx9aeatJtt0T5Nu21eKOpu9Ti87vak+gcF9xSsjRlkLvjbzzoeGp63 RJKJc6b1t4a0g0JMjmI+7eX81iEzBJyNnbw2vslYarmtaOYCJ/PcuSLyZYyHBPn2iVRP+6mf p565aO3Xla23Th4xYXuWcTWBie+x06eUmAey+V2fw77ocAtqiE5fdd1uSW/5ca1t19r+ynwr iGDcO2GzxqUD/y7H9P+9nRGrqsRSnJFoqMVcVJwIAO81IEkjBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsWy7bCSvG7l042pBq9my1tcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGlAlPmQo+qFRc293J1sB4XK6LkZNDQsBE4tCt CYxdjFwcQgK7GSUmN7WyQySkJFZdv8cIYQtLrPz3nB2iqJ1J4u3KHiaQBJuAlkTfke9gtohA hMS0f2vBJjEL3GeU2Lr/KlsXIweHsECGxIVP6iA1LAKqEn+/fAUbyitgK/H2Ux8rxAJ5if0H zzKD2JwCdhJ9S9+AzRQCqrn/ZjYrRL2gxMmZT1hAbGag+uats5knMArMQpKahSS1gJFpFaNk akFxbnpusWGBYV5quV5xYm5xaV66XnJ+7iZGcKBrae5g3L7qg94hRiYOxkOMEhzMSiK8JqYb U4V4UxIrq1KL8uOLSnNSiw8xSnOwKInzir/oTRESSE8sSc1OTS1ILYLJMnFwSjUwOXy+c+Xd a+VNX9avWbI49K/ZKq2w8rvKx6NDDj7llXZ/o/4uttuU0/t6np8072PNbRcWPGUKkZSXL5v4 7J798tT610mfZomdWbV+f0dk3qO+GMnY71/XOzXW6F/N1tbmipLZvWLJ9LnTY3qydp3Zp+eX 23Ollf9voCXXge8Tek23u/wRWLP9Qv6Xktzf26aprcv9GnHYtGrG3w3+RZ9q3PdFl7Vcf+aT NKc7I5VJKPYf46WtyQz+9QZiLpczdQxXrfzqzNZ5QPJS0SeLaT525/N/s0w9x3dcsnbNnlwm 90sGXldXXZxx9qdp9bOcmgCnBz82GwgtX7Cf+R8X86xo+4CjgWXVqz9nqT1knLPOV4mlOCPR UIu5qDgRAPbWfUrjAgAA X-CMS-MailID: 20240125043713epcas5p29fff47db75cec104be21265031128bf4 X-Msg-Generator: CA CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240125043713epcas5p29fff47db75cec104be21265031128bf4 References: <20240125043630.4031634-1-sandeep.cs@samsung.com> Add Support for samsung wireless keyboard with input mapping events. Device 7021 (Samsung wireless keyboard) Signed-off-by: Sandeep C S Signed-off-by: Junwan Cho Signed-off-by: Jitender Sajwan --- drivers/hid/hid-ids.h | 2 + drivers/hid/hid-samsung.c | 97 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index fb30e228d35f..d7572ab5ea6c 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1143,8 +1143,10 @@ #define USB_DEVICE_ID_SAITEK_X65 0x0b6a #define USB_VENDOR_ID_SAMSUNG 0x0419 +#define USB_VENDOR_ID_SAMSUNG_ELECTRONICS 0x04e8 #define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600 +#define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD 0x7021 #define USB_VENDOR_ID_SEMICO 0x1a2c #define USB_DEVICE_ID_SEMICO_USB_KEYKOARD 0x0023 diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index 97d0bf7d4d7e..aa8e7805be76 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -139,6 +139,99 @@ static int samsung_kbd_mouse_input_mapping(struct hid_device *hdev, return 1; } +static int samsung_kbd_input_mapping(struct hid_device *hdev, + struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, + unsigned long **bit, int *max) +{ + if (!(HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE) || + HID_UP_KEYBOARD == (usage->hid & HID_USAGE_PAGE))) + return 0; + + dbg_hid("samsung wireless keyboard input mapping event [0x%x]\n", + usage->hid & HID_USAGE); + + if (HID_UP_KEYBOARD == (usage->hid & HID_USAGE_PAGE)) { + set_bit(EV_REP, hi->input->evbit); + switch (usage->hid & HID_USAGE) { + case 0x32: + samsung_kbd_mouse_map_key_clear(KEY_BACKSLASH); + break; + case 0x64: + samsung_kbd_mouse_map_key_clear(KEY_102ND); + break; + /* Only for BR keyboard */ + case 0x87: + samsung_kbd_mouse_map_key_clear(KEY_RO); + break; + default: + return 0; + } + } + + if (HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE)) { + switch (usage->hid & HID_USAGE) { + /* report 2 */ + /* MENU */ + case 0x040: + samsung_kbd_mouse_map_key_clear(KEY_MENU); + break; + case 0x18a: + samsung_kbd_mouse_map_key_clear(KEY_MAIL); + break; + case 0x196: + samsung_kbd_mouse_map_key_clear(KEY_WWW); + break; + case 0x19e: + samsung_kbd_mouse_map_key_clear(KEY_SCREENLOCK); + break; + case 0x221: + samsung_kbd_mouse_map_key_clear(KEY_SEARCH); + break; + case 0x223: + samsung_kbd_mouse_map_key_clear(KEY_HOMEPAGE); + break; + /* Smtart Voice Key */ + case 0x300: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY13); + break; + /* RECENTAPPS */ + case 0x301: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY1); + break; + /* APPLICATION */ + case 0x302: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY2); + break; + /* Voice search */ + case 0x305: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY4); + break; + /* QPANEL on/off */ + case 0x306: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY5); + break; + /* SIP on/off */ + case 0x307: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY3); + break; + /* LANG */ + case 0x308: + samsung_kbd_mouse_map_key_clear(KEY_LANGUAGE); + break; + case 0x30a: + samsung_kbd_mouse_map_key_clear(KEY_BRIGHTNESSDOWN); + break; + case 0x30b: + samsung_kbd_mouse_map_key_clear(KEY_BRIGHTNESSUP); + break; + default: + return 0; + } + } + + return 1; +} + static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { @@ -156,6 +249,9 @@ static int samsung_input_mapping(struct hid_device *hdev, struct hid_input *hi, if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE && hid_is_usb(hdev)) ret = samsung_kbd_mouse_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) + ret = samsung_kbd_input_mapping(hdev, + hi, field, usage, bit, max); return ret; } @@ -198,6 +294,7 @@ static int samsung_probe(struct hid_device *hdev, static const struct hid_device_id samsung_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) }, { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices); From patchwork Thu Jan 25 04:36:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "sandeep.cs" X-Patchwork-Id: 767055 Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09581111AE for ; Thu, 25 Jan 2024 04:37:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.25 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157447; cv=none; b=R2tvN328AZ8cuQFB6EO5yAREHHkxlpeG1SHsaqNEZgi+tpXbgnBPEh9WBA8xJVSLeSsq+yMi9J1g5JMrdoinZl+1S8yzv2J7l9TX+hYk57MJHihj9AVpyZUgJSVkern6kZoWuPEOCGuN3G3Gxu+xL1qAMQ7uMtq7BLOLxcq21n4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157447; c=relaxed/simple; bh=htuLjyh7MD+2wiik6bveKuTHw4ikcwrKyoVr5y6JoGU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=MxmsQgW9s4t2oeEbhltTpioM6c5WMHNrpzsUzIcuP5IkJdLImCQJ23omdhU1AE6U7wGxrbn1vACUDo83n87xNfY8QODlJyMVXlQsPGiHAZcYhXI0AYO+lb9GLvN6oFkj1/OE4Js8l2jaP5T8ocQCIWk1yDAcmCLyHgFYxU+TTwk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=Al2c6Ffo; arc=none smtp.client-ip=203.254.224.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="Al2c6Ffo" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240125043724epoutp028ba71e8e4bdc6f621581dc5e15cc0979~tfSfnhxqd2165921659epoutp02N for ; Thu, 25 Jan 2024 04:37:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240125043724epoutp028ba71e8e4bdc6f621581dc5e15cc0979~tfSfnhxqd2165921659epoutp02N DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706157444; bh=wqIAJgHOb3PONZDIIwi4erzvBZlBhVaiZg3QWPzJs4s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Al2c6Ffotznj7MwZejSPuU4oUEdiqwHpC2zICGJlubBP/+LbzJLJ7IGk/5FwwDKhc 9STEjYbfd0CH1YkvzUN0WxOCLrBylKk8sG9A/IgO9CgWsC6dPxviK/Nh4VgCKGlbq9 gxkeL+XtlIIiApdsSxbIm4X8hbZVpTbsGFgVeD+Y= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20240125043723epcas5p140bd0e63e9326f03eb25fcbac351cc78~tfSfTXtUw2411224112epcas5p1u; Thu, 25 Jan 2024 04:37:23 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.183]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4TL7N218F8z4x9QJ; Thu, 25 Jan 2024 04:37:22 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 2F.EC.10009.085E1B56; Thu, 25 Jan 2024 13:37:21 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240125043720epcas5p26d753bd642085849574b82af5c60ecb1~tfScIMvjY0578005780epcas5p2J; Thu, 25 Jan 2024 04:37:20 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240125043720epsmtrp2c6a37642e8aded006805999e30d2ee29~tfScHdm9y1848518485epsmtrp2T; Thu, 25 Jan 2024 04:37:20 +0000 (GMT) X-AuditID: b6c32a4a-261fd70000002719-2f-65b1e5808fb1 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id FD.4A.07368.085E1B56; Thu, 25 Jan 2024 13:37:20 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240125043718epsmtip237e0a4e89dcada12e41922fb6853f06c~tfSaoZOOu1132311323epsmtip2X; Thu, 25 Jan 2024 04:37:18 +0000 (GMT) From: Sandeep C S To: Jiri Kosina , Benjamin Tissoires Cc: gaudium.lee@samsung.com, ih0923.kim@samsung.com, suhyun_.kim@samsung.com, jitender.s21@samsung.com, junwan.cho@samsung.com, sandeep.cs@samsung.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [HID Patchsets for Samsung driver v4 4/6] HID: Samsung : Add Samsung wireless gamepad support. Date: Thu, 25 Jan 2024 10:06:27 +0530 Message-Id: <20240125043630.4031634-5-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240125043630.4031634-1-sandeep.cs@samsung.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjk+LIzCtJLcpLzFFi42LZdlhTQ7fx6cZUg80vmSyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2RlPrJraCE8oVX7p72BoYj8t2MXJySAiYSGyd/Z+5i5GLQ0hgN6PErBeP mSCcT4wSszs6WCGcb4wSv/5eZYRp2Xf6PjtEYi+jRP+zLSwQTieTxKZLF5lBqtgEtCT6jnxn ArFFBCIk3i3YBNbNLHCdUeLBw0AQW1ggU+LL7BOsIDaLgKrErnl/WEBsXgFbiZ8r/zNBbJOX 2H/wLNhMTgE7ib6lb5ggagQlTs58wgIxU16ieetssCckBH6yS/y99wdoGQeQ4yIx7agbxBxh iVfHt7BD2FISn9/tZYOo72aUWHr7GDuEM4NRomXnVWaIKnuJn68nsIEMYhbQlFi/Sx9iGZ9E 7+8nTBDzeSU62oQgqlUknnbtZoWZ//3ERqj7PSSO/H4EDdOJjBJrbixinsAoPwvJD7OQ/DAL YdsCRuZVjJKpBcW56anFpgVGeanl8KhNzs/dxAhOmFpeOxgfPvigd4iRiYPxEKMEB7OSCK+J 6cZUId6UxMqq1KL8+KLSnNTiQ4ymwECeyCwlmpwPTNl5JfGGJpYGJmZmZiaWxmaGSuK8r1vn pggJpCeWpGanphakFsH0MXFwSjUwHZiy83C1w8pbB9SXbLlvc3D+h/z49pZ5rSnzmVptt53u fS/0OPVX/guZTBEBC+77jw22qypy+bzfP8ON+eK0jTPS+O8kPvyV8vvSH4bfs5fM69D5KPPh +BWz0Mv/dvjdVK3o2/cikT+l7I3e9iPzd5xfnvOxu+LHRZVp3orfKq4GxxjXLmx/deRrylbJ PZ8KJ16wbG5xCfXc8fDqym17NmxYp7H9aU10yMZNTMlzPm5iu7v+2rpb/VuFYnbv7D38yJeh 8I+Iz8mucJlLMSz9VlPfHrueYO6kVPucLU5tS5v0Rr15nUtyTE7IrG689LP+V3nFuUuxZveF N0S8cTu1QnmB860G+z1/tH9Pu343MsZUiaU4I9FQi7moOBEAlUUiGCEEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsWy7bCSvG7D042pBjtnCVtcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAldGU+smtoITyhVfunvYGhiPy3YxcnJICJhI7Dt9 n72LkYtDSGA3o8TTD6/YIBJSEquu32OEsIUlVv57zg5iCwm0M0lsPQLWzCagJdF35DsTiC0i ECEx7d9aRpBBzAL3GSW27r8KNkhYIF1i+4RbLCA2i4CqxK55f8BsXgFbiZ8r/zNBLJCX2H/w LDOIzSlgJ9G39A0TxDJbiftvZrNC1AtKnJz5BKyXGai+eets5gmMArOQpGYhSS1gZFrFKJla UJybnptsWGCYl1quV5yYW1yal66XnJ+7iREc6FoaOxjvzf+nd4iRiYPxEKMEB7OSCK+J6cZU Id6UxMqq1KL8+KLSnNTiQ4zSHCxK4ryGM2anCAmkJ5akZqemFqQWwWSZODilGpjWtV+0nCYo eTm1OF3fO+xAkdBGHp+rTKWTbx4xqRLo3Nl56ImSpwUvy5+zrOev7togHuCoskTiMnNoclJ2 qs6t+sUxHo98eQIlZVknzXOJbDs1/97JN8zbOa/q3hWOsVp6cvra/yI/1+xZbS/NvOO8EEtX bqv/m8TvSgz/t5UWs1w0cLp61DDi+9W+RFeVCNfdeyVfX10iEBbNuy3jbo+368z9h0MfLPt0 oXfPR7WsrPQtbw6wrFjuxVB6sH9Dd9yPqrRsD4vLq8+zNDrsWjnXsu28lqLjvfi1daHXjp/Q nVYvkb/y3YlaF3fVmWJaZYti0xx/1uYybs11mVuT9OrybCvvG2F9PRvmrNo8678SS3FGoqEW c1FxIgDZG0fi4wIAAA== X-CMS-MailID: 20240125043720epcas5p26d753bd642085849574b82af5c60ecb1 X-Msg-Generator: CA CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240125043720epcas5p26d753bd642085849574b82af5c60ecb1 References: <20240125043630.4031634-1-sandeep.cs@samsung.com> Add support for samsung wireless gamepad with input mapping events. Device a000 (Samsung wireless gamepad) Signed-off-by: Sandeep C S Signed-off-by: Junwan Cho Signed-off-by: Jitender Sajwan --- drivers/hid/hid-ids.h | 1 + drivers/hid/hid-samsung.c | 95 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index d7572ab5ea6c..8a106fd6b339 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1147,6 +1147,7 @@ #define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD 0x7021 +#define USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD 0xa000 #define USB_VENDOR_ID_SEMICO 0x1a2c #define USB_DEVICE_ID_SEMICO_USB_KEYKOARD 0x0023 diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index aa8e7805be76..217b30b71bb8 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -232,6 +232,97 @@ static int samsung_kbd_input_mapping(struct hid_device *hdev, return 1; } +static int samsung_gamepad_input_mapping(struct hid_device *hdev, + struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, + unsigned long **bit, int *max) +{ + if (!(HID_UP_BUTTON == (usage->hid & HID_USAGE_PAGE) || + HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE))) + return 0; + + dbg_hid("samsung wireless gamepad input mapping event [0x%x], %ld, %ld, [0x%x]\n", + usage->hid & HID_USAGE, hi->input->evbit[0], hi->input->absbit[0], usage->hid & HID_USAGE_PAGE); + + if (HID_UP_BUTTON == (usage->hid & HID_USAGE_PAGE)) { + switch (usage->hid & HID_USAGE) { + case 0x01: + samsung_kbd_mouse_map_key_clear(BTN_A); + break; + case 0x02: + samsung_kbd_mouse_map_key_clear(BTN_B); + break; + case 0x03: + samsung_kbd_mouse_map_key_clear(BTN_C); + break; + case 0x04: + samsung_kbd_mouse_map_key_clear(BTN_X); + break; + case 0x05: + samsung_kbd_mouse_map_key_clear(BTN_Y); + break; + case 0x06: + samsung_kbd_mouse_map_key_clear(BTN_Z); + break; + case 0x07: + samsung_kbd_mouse_map_key_clear(BTN_TL); + break; + case 0x08: + samsung_kbd_mouse_map_key_clear(BTN_TR); + break; + case 0x09: + samsung_kbd_mouse_map_key_clear(BTN_TL2); + break; + case 0x0a: + samsung_kbd_mouse_map_key_clear(BTN_TR2); + break; + case 0x0b: + samsung_kbd_mouse_map_key_clear(BTN_SELECT); + break; + case 0x0c: + samsung_kbd_mouse_map_key_clear(BTN_START); + break; + case 0x0d: + samsung_kbd_mouse_map_key_clear(BTN_MODE); + break; + case 0x0e: + samsung_kbd_mouse_map_key_clear(BTN_THUMBL); + break; + case 0x0f: + samsung_kbd_mouse_map_key_clear(BTN_THUMBR); + break; + case 0x10: + samsung_kbd_mouse_map_key_clear(0x13f); + break; + default: + return 0; + } + } + + if (HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE)) { + switch (usage->hid & HID_USAGE) { + case 0x040: + samsung_kbd_mouse_map_key_clear(KEY_MENU); + break; + case 0x223: + samsung_kbd_mouse_map_key_clear(KEY_HOMEPAGE); + break; + case 0x224: + samsung_kbd_mouse_map_key_clear(KEY_BACK); + break; + + /* Screen Capture */ + case 0x303: + samsung_kbd_mouse_map_key_clear(KEY_SYSRQ); + break; + + default: + return 0; + } + } + + return 1; +} + static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { @@ -252,6 +343,9 @@ static int samsung_input_mapping(struct hid_device *hdev, struct hid_input *hi, else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) ret = samsung_kbd_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD) + ret = samsung_gamepad_input_mapping(hdev, + hi, field, usage, bit, max); return ret; } @@ -295,6 +389,7 @@ static const struct hid_device_id samsung_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) }, { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices); From patchwork Thu Jan 25 04:36:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "sandeep.cs" X-Patchwork-Id: 766194 Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 25EA31171C for ; Thu, 25 Jan 2024 04:37:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.25 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157454; cv=none; b=f+0QJ7vSb1lIY/vwTgRDRzpRKZRghsI4gQKlu0m82mGPxWOP5bNYSPA8wCNtWhDRP+N1AlrgzQa/maMbpq4L0lX9r0sNv1qkEScRZFSuJbj4vPutZb5/iQo6ykSD/H3/LrvYOlLydaap05gaF+kvHOZc7cFJaUDFcmnIChxLLuU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157454; c=relaxed/simple; bh=vfJqlUnGoBgdkhHRyH1JP+58dA+bo5YwqAg+NvUciqU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=CMlDpFiPCRyqqn1fD3sCw4XAAx7dz97tCq44Vun36PjE51gAh1sYyz/vyO5HL6mCN37IXFMtrS0dgiwU3eXvSL/bIRVG0aD2/5rVYWR8HOIjfOdAJryExTV93+GAikkatuNFW7G10RpdV2FMYZF2hhBvg8HWs0B/bqO3uIsgF1A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=aiDk5aOg; arc=none smtp.client-ip=203.254.224.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="aiDk5aOg" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240125043730epoutp0248af8b7eb0c0dadcdfeed72fca20b915~tfSlcJac-2165621656epoutp02K for ; Thu, 25 Jan 2024 04:37:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240125043730epoutp0248af8b7eb0c0dadcdfeed72fca20b915~tfSlcJac-2165621656epoutp02K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706157450; bh=XjsBmEzoUTbjfbs94yMRyqbJjQFBMXVRoxTwZgBHNCg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aiDk5aOgy7w90l9nyrixwnZN/585mSK+lfvvXFrWp4yLD2ZyTnds/xgE+jhyYZ16X /B7k5FqQx5hVgLm6J/ExrF+5CcTHtLdDwVCz6WPSTq1YoOYjV98t+LXJb5G3Jf0mrd BgDEWULUQgghWK/tn4/wIOnbI4FZ085hRq3cBtDI= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240125043729epcas5p3ba3e22f5388f90001d70313b92d282c8~tfSk7wsvW0575905759epcas5p3G; Thu, 25 Jan 2024 04:37:29 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.182]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4TL7N81CBrz4x9Q9; Thu, 25 Jan 2024 04:37:28 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id D4.FC.10009.785E1B56; Thu, 25 Jan 2024 13:37:28 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240125043727epcas5p2cb925e28e453a870eaa0efa248942f0f~tfSi8QLWZ0584505845epcas5p2U; Thu, 25 Jan 2024 04:37:27 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240125043727epsmtrp1ea78986663dd92f250f5040926d376d8~tfSi6y3xS1638716387epsmtrp1C; Thu, 25 Jan 2024 04:37:27 +0000 (GMT) X-AuditID: b6c32a4a-ff1ff70000002719-44-65b1e5872c5c Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 84.E4.08755.785E1B56; Thu, 25 Jan 2024 13:37:27 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240125043726epsmtip2d4a8c184f671de480beedb62033e614c~tfShdU15c1113111131epsmtip2H; Thu, 25 Jan 2024 04:37:26 +0000 (GMT) From: Sandeep C S To: Jiri Kosina , Benjamin Tissoires Cc: gaudium.lee@samsung.com, ih0923.kim@samsung.com, suhyun_.kim@samsung.com, jitender.s21@samsung.com, junwan.cho@samsung.com, sandeep.cs@samsung.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [HID Patchsets for Samsung driver v4 5/6] HID: Samsung : Add Samsung wireless action mouse support. Date: Thu, 25 Jan 2024 10:06:28 +0530 Message-Id: <20240125043630.4031634-6-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240125043630.4031634-1-sandeep.cs@samsung.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjk+LIzCtJLcpLzFFi42LZdlhTQ7fj6cZUg30tTBbXp2xmtbi9wNNi 65K5rBa3jrcyWrx8sIHdYvPkRywWNz99Y7W4vGsOm0X77GeMFo9WbGJy4PLYtKqTzeP9vqts Hn1bVjF6fN4kF8ASlW2TkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pmYKhraGlhrqSQl5ibaqvk 4hOg65aZA3SPkkJZYk4pUCggsbhYSd/Opii/tCRVISO/uMRWKbUgJafApECvODG3uDQvXS8v tcTK0MDAyBSoMCE7Y83K2awFq8QrJn+ez9zA2CjSxcjJISFgInGsaSt7FyMXh5DAbkaJrTcf MEM4nxgl2t/eZYJwvjFKfJj8ghWm5c+eaywQib2MEneeXWCFcDqZJFb8fsICUsUmoCXRd+Q7 E4gtIhAh8W7BJkYQm1ngOqPEg4eBILawQJ7E8pNXweIsAqoS1xpusoPYvAK2ElOu/meG2CYv sf/gWTCbU8BOom/pGyaIGkGJkzMhdjED1TRvnQ12t4TAT3aJV2uuMEE0u0i8Ov6bBcIWBrK3 sEPYUhIv+9vYIRq6GSWW3j4G5cxglGjZeRVqtb3Ez9cT2LoYOYBWaEqs36UPsY1Povf3EyaQ sIQAr0RHmxBEtYrE067drDDzv5/YCHWDh8Sff0/BbCGBiYwS/TvDJjDKz0LywywkP8xCWLaA kXkVo2RqQXFuemqxaYFRXmo5PGqT83M3MYITppbXDsaHDz7oHWJk4mA8xCjBwawkwmtiujFV iDclsbIqtSg/vqg0J7X4EKMpMJAnMkuJJucDU3ZeSbyhiaWBiZmZmYmlsZmhkjjv69a5KUIC 6YklqdmpqQWpRTB9TBycUg1M6rof8l8sWLfgjkhv0hS5E+nzNmYezn/x6dky4YXBEzdEhJdV ujldkFk9TW/z6+82qW4Lb82OOXo5gplvYZBriumy48UT2Ztmt6WsffhUelk26/q7ZaIJi6vW 3A3JT2I/+zEteYcax6HJdV18fuk3VZcmGZZ9/vg68rzI53LfkudbY+8uUGT+sN7zjAxH8yKh h7Py3X6ZC3ZZ/n6kfaFw1iv+qCnire1nUu352HdFyMWxyR/6OONA79Wafwuq3v6d+ePU+rkX bkh2rrWMnedyQr/yJmPJSwXrfav+cFw0nnXBSLokqmyBgsDpQ/8kjz6VrdNMu5y9v/dhaNJN Aftz79S6Jv8/9iXeZ9HvYPU1l5RYijMSDbWYi4oTAc+Qh6MhBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsWy7bCSvG77042pBiuuqltcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGmpWzWQtWiVdM/jyfuYGxUaSLkZNDQsBE4s+e ayxdjFwcQgK7GSUmP/3NDJGQklh1/R4jhC0ssfLfc3aIonYmiQlHVoIl2AS0JPqOfGcCsUUE IiSm/VvLCFLELHCfUWLr/qtsIAlhgRyJjkv3WUFsFgFViWsNN9lBbF4BW4kpV/9DbZOX2H/w LJjNKWAn0bf0DdhQIaCa+29ms0LUC0qcnPmEBcRmBqpv3jqbeQKjwCwkqVlIUgsYmVYxSqYW FOem5xYbFhjmpZbrFSfmFpfmpesl5+duYgSHupbmDsbtqz7oHWJk4mA8xCjBwawkwmtiujFV iDclsbIqtSg/vqg0J7X4EKM0B4uSOK/4i94UIYH0xJLU7NTUgtQimCwTB6dUA1NOYHeI+rqk oBlVv+Q/fJAMnCq0glHrTMU+/+tP7z649iPoj1VH/yHTdX0lG4oMREyuXdJ4vp5nda60mFXH 6cDTDs2KxcK/fO+HvtzoYvpq+1kN5bYZQhfaXrxUTp/iJ/us8/FP14md7w8y3v43/ZBcgbVw Mtu5jbONdodMmaPsc+rN/G5O3aT96vzahwpS6x5+M/ialdhznXeXjsW9C89Mbz6Ll5rZ0dhw 9Kf8nmd9p13kq+5MncKubxEspPbW2CNK8lqC/InVH61XJnxxshczKD1S+8HcKz/793emuOgt fuo2Lec2+26bn3G2lcvNx/iEwMXpB6uP7/46o+X4s+u3qvJjAo2z3+S7ZX79cVGJpTgj0VCL uag4EQBjxp3u5AIAAA== X-CMS-MailID: 20240125043727epcas5p2cb925e28e453a870eaa0efa248942f0f X-Msg-Generator: CA CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240125043727epcas5p2cb925e28e453a870eaa0efa248942f0f References: <20240125043630.4031634-1-sandeep.cs@samsung.com> Add support for samsung wireless action mouse with input mapping events. Device a004 (Samsung wireless action mouse) Signed-off-by: Sandeep C S Signed-off-by: Junwan Cho Signed-off-by: Jitender Sajwan --- drivers/hid/hid-ids.h | 1 + drivers/hid/hid-samsung.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 8a106fd6b339..06bf718961da 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1148,6 +1148,7 @@ #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD 0x7021 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD 0xa000 +#define USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE 0xa004 #define USB_VENDOR_ID_SEMICO 0x1a2c #define USB_DEVICE_ID_SEMICO_USB_KEYKOARD 0x0023 diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index 217b30b71bb8..0de23a70dddb 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -323,6 +323,29 @@ static int samsung_gamepad_input_mapping(struct hid_device *hdev, return 1; } +static int samsung_actionmouse_input_mapping(struct hid_device *hdev, + struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, + unsigned long **bit, int *max) +{ + + dbg_hid("samsung wireless actionmouse input mapping event [0x%x], [0x%x], %ld, %ld, [0x%x]\n", + usage->hid, usage->hid & HID_USAGE, hi->input->evbit[0], hi->input->absbit[0], + usage->hid & HID_USAGE_PAGE); + + if (((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER) && ((usage->hid & HID_USAGE_PAGE) != HID_UP_BUTTON)) + return 0; + + switch (usage->hid & HID_USAGE) { + case 0x301: + samsung_kbd_mouse_map_key_clear(254); + break; + default: + return 0; + } + + return 1; +} + static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { @@ -346,6 +369,9 @@ static int samsung_input_mapping(struct hid_device *hdev, struct hid_input *hi, else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD) ret = samsung_gamepad_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE) + ret = samsung_actionmouse_input_mapping(hdev, + hi, field, usage, bit, max); return ret; } @@ -390,6 +416,7 @@ static const struct hid_device_id samsung_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices); From patchwork Thu Jan 25 04:36:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "sandeep.cs" X-Patchwork-Id: 767054 Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11EBD125BF for ; Thu, 25 Jan 2024 04:37:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.34 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157464; cv=none; b=AIPJlJkHvpZdwoTVWsZNabzRs/8yCTvO1HkUQCVKezHpg6NCSSe+Zh7YBy+vXpPBGrUHU9Ooko7/RmEwbP26ss0YwZGQZ3jHEdpWQQjdwtQp1od2a8cGx1x8houmD8jYbwE+U09S6QuD2S7tN7umpeF4zX9CbUEXH2DFT15Rdh4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157464; c=relaxed/simple; bh=N6YRbOW5sc62cmePVN+BHVrn7+I8UHKno0vh3VSNZR8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=TUxQHGR3FNcb0pN7NaEMGXI4a2ZEWOwMLBC3kt5/9QmZrC4JsjW5o8mGys9H3cHIxYxfbhBMJCydb3Gy+RSX8ol09XF8JaIHXBgBYdQZyEWqU84mBtDq6pVIDSg+d22R1LqkY1Qae7rp53Vnh1Hb4HP087E6ILg/4TeyoXMsmy4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=im/a+eHc; arc=none smtp.client-ip=203.254.224.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="im/a+eHc" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20240125043741epoutp04519fa164cb729f8ced273303b27f5981~tfSvVoRmB0964209642epoutp04A for ; Thu, 25 Jan 2024 04:37:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20240125043741epoutp04519fa164cb729f8ced273303b27f5981~tfSvVoRmB0964209642epoutp04A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706157461; bh=IMWsqDQkVcKt9jaVESfOT/GxXvrsIs2b7EQgMe6T0po=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=im/a+eHcJNNsf9LX7NEbL1lDlULcI03lhdaX0ue/TM9JEm3cdQGDflznRopZtnWON M1utlP+s9z9Eu4NZp/NHbSYtAcm6CD/dGK2AyR5szVQDLTc/I8KVMjtpX73PL5ktvi jxBUAnJDwCxIdx71vWGLtQJSXnS6wwW9eSCuXwKY= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20240125043740epcas5p4c8426d2434f2e4180e96caa44a7a9637~tfSvCkUFO1197811978epcas5p4x; Thu, 25 Jan 2024 04:37:40 +0000 (GMT) Received: from epsmges5p3new.samsung.com (unknown [182.195.38.180]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4TL7NM0kTfz4x9Pr; Thu, 25 Jan 2024 04:37:39 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id E5.7B.09672.095E1B56; Thu, 25 Jan 2024 13:37:36 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20240125043736epcas5p3e42a8c2513e9ee271221df2ee5128240~tfSqyCcLl1781017810epcas5p3a; Thu, 25 Jan 2024 04:37:36 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240125043736epsmtrp2412f7d95ac9b2457a6f920d81b19c458~tfSqxOcI11848518485epsmtrp2i; Thu, 25 Jan 2024 04:37:36 +0000 (GMT) X-AuditID: b6c32a4b-39fff700000025c8-22-65b1e590ce6a Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 92.5A.07368.095E1B56; Thu, 25 Jan 2024 13:37:36 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240125043734epsmtip200f21792839eddbd5a636fb185b3097b~tfSpUZ7ww1113111131epsmtip2K; Thu, 25 Jan 2024 04:37:34 +0000 (GMT) From: Sandeep C S To: Jiri Kosina , Benjamin Tissoires Cc: gaudium.lee@samsung.com, ih0923.kim@samsung.com, suhyun_.kim@samsung.com, jitender.s21@samsung.com, junwan.cho@samsung.com, sandeep.cs@samsung.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [HID Patchsets for Samsung driver v4 6/6] HID: Samsung : Add Samsung wireless bookcover and universal keyboard support. Date: Thu, 25 Jan 2024 10:06:29 +0530 Message-Id: <20240125043630.4031634-7-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240125043630.4031634-1-sandeep.cs@samsung.com> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupik+LIzCtJLcpLzFFi42LZdlhTS3fC042pBssOq1pcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLVLZNRmpiSmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2S i0+ArltmDtA9SgpliTmlQKGAxOJiJX07m6L80pJUhYz84hJbpdSClJwCkwK94sTc4tK8dL28 1BIrQwMDI1OgwoTsjPNL3Ase6ldsXj+PqYHxhXoXIyeHhICJxKKF/9i7GLk4hAR2M0q833CT BcL5xCgx/9hZKOcbo8SkQ7uYuxg5wFrO706FiO8Fiq/ezwoySkigk0ni6SxHEJtNQEui78h3 JhBbRCBC4t2CTYwgNrPAdUaJBw8DQZqFBZoYJbZs2wJWxCKgKvFl7mewBbwCthKPfstDnCcv sf/gWWYQm1PATqJv6Ruwcl4BQYmTM5+wQMyUl2jeOpsZZKaEwF92iUszQGaCHOoisecTL8Qc YYlXx7ewQ9hSEp/f7WWDqO9mlFh6+xg7hDODUaJl51VmiCp7iZ+vJ7CBDGIW0JRYv0sfYhmf RO/vJ1DzeSU62oQgqlUknnbtZoWZ//3ERiYI20Pi0q53zJDwmcgosfoz4wRG+VlIXpiF5IVZ CMsWMDKvYpRMLSjOTU8tNi0wzksth0drcn7uJkZwotTy3sH46MEHvUOMTByMhxglOJiVRHhN TDemCvGmJFZWpRblxxeV5qQWH2I0BQbxRGYp0eR8YKrOK4k3NLE0MDEzMzOxNDYzVBLnfd06 N0VIID2xJDU7NbUgtQimj4mDU6qB6Z5wvLOZSQkP95c94qwM2t9Fnl89V71dyrh291xNxxZp 7VseE+rFutcrNksbbm06K/h0l6uq+YIb/0s2RuUUODldlhL6fIalV1ZyOtOllcGF3kFCvtKq mbn8dh9DHGbxFL0xVfBQLfjn/ezZnUju709L9qa3T5z9MfpuRYpc4eHUedwG7pt57rm/nSbS 8npOkdjt3OOZP2MTH2l/VlURniZfrx9xWl/gus/s/hehnlWXevWupST6H3jeN3nSVYsESe1L xnkqLAIsy/W89rJeFvdoCjSovT/r5OPAHSskrPf8vx8YIyZ97l33pnvr7gWfz7CbbcwnEDbV Pup86+yD9+emJd6+ILJx346Je88osRRnJBpqMRcVJwIAGsuumx0EAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrPLMWRmVeSWpSXmKPExsWy7bCSvO6EpxtTDTq+sVpcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3PwEVHF51xw2i/bZzxgtHq3YxOTA5bFpVSebx/t9V9k8 +rasYvT4vEkugCWKyyYlNSezLLVI3y6BK+P8EveCh/oVm9fPY2pgfKHexcjBISFgInF+d2oX IxeHkMBuRolFW3YxdTFyAsWlJFZdv8cIYQtLrPz3nB2iqJ1J4vGqZmaQBJuAlkTfke9gDSIC ERLT/q1lBCliFrjPKLF1/1U2EEdYoIFRov/wf7BRLAKqEl/mfmYGWc0rYCvx6Lc8xAZ5if0H z4IN5RSwk+hb+gZsqBBQyf03s1lBbF4BQYmTM5+wgNjMQPXNW2czT2AUmIUkNQtJagEj0ypG ydSC4tz03GTDAsO81HK94sTc4tK8dL3k/NxNjOAw19LYwXhv/j+9Q4xMHIyHGCU4mJVEeE1M N6YK8aYkVlalFuXHF5XmpBYfYpTmYFES5zWcMTtFSCA9sSQ1OzW1ILUIJsvEwSnVwHQk4E5E 3yqxWV2JmfvsGSztr+dkPFcOXP5DWKOaZf6+F8cqfx1Y9WJPiJDwRb9jzUlPwheZfJl/rmXK 0vk6Gu+LzHde6X7Wcdnyi1TfHD7x8ktz181c9X+L1YXALXF7+PWiLtx8MK1GLs8qcCpHhXYa k53VRtO+cpNEz30Hvi7btLZTdquavU7eVPunbgKTu9l1zxxsrxdMjN3cf/69QXH6LAmjSUIr s+Xvp3710jGNS6li1HqrtcnxQVE584fpS+w2S6/c/G/SlJMX3V4ssettMmd+1qMzOWfGqSL1 VTzn+c8mxbC+dr+5+82lfTnpqRpnL+4r1Li5eUf1UaXjhmuuO8/QEz4j+WEXv6Ov92ElluKM REMt5qLiRACE/etx4gIAAA== X-CMS-MailID: 20240125043736epcas5p3e42a8c2513e9ee271221df2ee5128240 X-Msg-Generator: CA CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240125043736epcas5p3e42a8c2513e9ee271221df2ee5128240 References: <20240125043630.4031634-1-sandeep.cs@samsung.com> Add support for samsung wireless bookcover and universal keyboard with input mapping events. Device a005 (Samsung wireless bookcover keyboard) Device a006 (Samsung wireless universal keyboard) Device a064 (Samsung wireless multi hogp keyboard) Signed-off-by: Sandeep C S Signed-off-by: Junwan Cho Signed-off-by: Jitender Sajwan Signed-off-by: Gwangho Lee --- drivers/hid/hid-ids.h | 3 + drivers/hid/hid-samsung.c | 131 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 06bf718961da..221bae808c25 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1149,6 +1149,9 @@ #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD 0x7021 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD 0xa000 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE 0xa004 +#define USB_DEVICE_ID_SAMSUNG_WIRELESS_BOOKCOVER 0xa005 +#define USB_DEVICE_ID_SAMSUNG_WIRELESS_UNIVERSAL_KBD 0xa006 +#define USB_DEVICE_ID_SAMSUNG_WIRELESS_MULTI_HOGP_KBD 0xa064 #define USB_VENDOR_ID_SEMICO 0x1a2c #define USB_DEVICE_ID_SEMICO_USB_KEYKOARD 0x0023 diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index 0de23a70dddb..08fb25b8459a 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -346,6 +346,129 @@ static int samsung_actionmouse_input_mapping(struct hid_device *hdev, return 1; } +static int samsung_universal_kbd_input_mapping(struct hid_device *hdev, + struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, + unsigned long **bit, int *max) +{ + if (!(HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE) || + HID_UP_KEYBOARD == (usage->hid & HID_USAGE_PAGE))) + return 0; + + dbg_hid("samsung wireless keyboard input mapping event [0x%x]\n", + usage->hid & HID_USAGE); + + if (HID_UP_KEYBOARD == (usage->hid & HID_USAGE_PAGE)) { + set_bit(EV_REP, hi->input->evbit); + switch (usage->hid & HID_USAGE) { + case 0x32: + samsung_kbd_mouse_map_key_clear(KEY_BACKSLASH); + break; + case 0x64: + samsung_kbd_mouse_map_key_clear(KEY_102ND); + break; + /* Only for BR keyboard */ + case 0x87: + samsung_kbd_mouse_map_key_clear(KEY_RO); + break; + default: + return 0; + } + } + + if (HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE)) { + switch (usage->hid & HID_USAGE) { + /* report 2 */ + /* MENU */ + case 0x040: + samsung_kbd_mouse_map_key_clear(KEY_MENU); + break; + case 0x18a: + samsung_kbd_mouse_map_key_clear(KEY_MAIL); + break; + case 0x196: + samsung_kbd_mouse_map_key_clear(KEY_WWW); + break; + case 0x19e: + samsung_kbd_mouse_map_key_clear(KEY_SCREENLOCK); + break; + case 0x221: + samsung_kbd_mouse_map_key_clear(KEY_SEARCH); + break; + case 0x223: + samsung_kbd_mouse_map_key_clear(KEY_HOMEPAGE); + break; + /* RECENTAPPS */ + case 0x301: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY1); + break; + /* APPLICATION */ + case 0x302: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY2); + break; + /* Voice search */ + case 0x305: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY4); + break; + /* QPANEL on/off */ + case 0x306: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY5); + break; + /* SIP on/off */ + case 0x307: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY3); + break; + /* LANG */ + case 0x308: + samsung_kbd_mouse_map_key_clear(KEY_LANGUAGE); + break; + case 0x30a: + samsung_kbd_mouse_map_key_clear(KEY_BRIGHTNESSDOWN); + break; + case 0x070: + samsung_kbd_mouse_map_key_clear(KEY_BRIGHTNESSDOWN); + break; + case 0x30b: + samsung_kbd_mouse_map_key_clear(KEY_BRIGHTNESSUP); + break; + case 0x06f: + samsung_kbd_mouse_map_key_clear(KEY_BRIGHTNESSUP); + break; + /* S-Finder */ + case 0x304: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY7); + break; + /* Screen Capture */ + case 0x303: + samsung_kbd_mouse_map_key_clear(KEY_SYSRQ); + break; + /* Multi Window */ + case 0x309: + samsung_kbd_mouse_map_key_clear(BTN_TRIGGER_HAPPY9); + break; + /* HotKey App 1 */ + case 0x071: + samsung_kbd_mouse_map_key_clear(0x2f5); + break; + /* HotKey App 2 */ + case 0x072: + samsung_kbd_mouse_map_key_clear(0x2f6); + break; + /* HotKey App 3 */ + case 0x073: + samsung_kbd_mouse_map_key_clear(0x2f7); + break; + /* Dex */ + case 0x06e: + samsung_kbd_mouse_map_key_clear(0x2bd); + break; + default: + return 0; + } + } + + return 1; +} + static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { @@ -372,6 +495,12 @@ static int samsung_input_mapping(struct hid_device *hdev, struct hid_input *hi, else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE) ret = samsung_actionmouse_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_UNIVERSAL_KBD) + ret = samsung_universal_kbd_input_mapping(hdev, + hi, field, usage, bit, max); + else if (hdev->product == USB_DEVICE_ID_SAMSUNG_WIRELESS_MULTI_HOGP_KBD) + ret = samsung_universal_kbd_input_mapping(hdev, + hi, field, usage, bit, max); return ret; } @@ -417,6 +546,8 @@ static const struct hid_device_id samsung_devices[] = { { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_UNIVERSAL_KBD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_SAMSUNG_WIRELESS_MULTI_HOGP_KBD) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices);