From nobody Wed Dec 24 16:19:56 2025 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 380D98832 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 20240125043657epoutp03c03bfeefae251da988501d9eec6048d3~tfSHLlLNF0189501895epoutp03J for ; Thu, 25 Jan 2024 04:36:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240125043657epoutp03c03bfeefae251da988501d9eec6048d3~tfSHLlLNF0189501895epoutp03J 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-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 Content-Type: text/plain; charset="utf-8" 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 wi= de 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_d= evice *hdev, static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE =3D=3D hdev->product) + if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE =3D=3D hdev->product && hid_is_usb(hd= ev)) rdesc =3D samsung_irda_report_fixup(hdev, rdesc, rsize); return rdesc; } @@ -139,7 +139,7 @@ static int samsung_input_mapping(struct hid_device *hde= v, struct hid_input *hi, { int ret =3D 0; =20 - if (USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE =3D=3D hdev->product) + if (USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE =3D=3D hdev->product && hid_= is_usb(hdev)) ret =3D samsung_kbd_mouse_input_mapping(hdev, hi, field, usage, bit, max); =20 @@ -152,9 +152,6 @@ static int samsung_probe(struct hid_device *hdev, int ret; unsigned int cmask =3D HID_CONNECT_DEFAULT; =20 - if (!hid_is_usb(hdev)) - return -EINVAL; - ret =3D hid_parse(hdev); if (ret) { hid_err(hdev, "parse failed\n"); @@ -162,6 +159,10 @@ static int samsung_probe(struct hid_device *hdev, } =20 if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE =3D=3D hdev->product) { + if (!hid_is_usb(hdev)) { + ret =3D -EINVAL; + goto err_free; + } if (hdev->rsize =3D=3D 184) { /* disable hidinput, force hiddev */ cmask =3D (cmask & ~HID_CONNECT_HIDINPUT) | --=20 2.34.1 From nobody Wed Dec 24 16:19:56 2025 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) (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 5572010A0A for ; Thu, 25 Jan 2024 04:37:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.24 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157430; cv=none; b=BBsSM5kGemYpMtxvDGBPjScUwuEs5Q68dm5/PN/8KI6ZgMp3nQWlIj24w0CuhNUC7+svcWephdbP1azhKv2qxPFKxgURG5jqjhfZYCMSLAeW1lL5myBlT29HfA8x4SLeluSOXKf8zAWzSFGHwFCkixCptzDyGKjwjkodQa6oPsg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157430; c=relaxed/simple; bh=rmEWhlVDpeIv0NBvUoVUkcUuNtoCG83x6jLTykAx0mI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=Mih9/vRJy3HREwdTAgbRDZ4kNCvhdaFhizfuzK9n9GZ6JDDtaIeaUFn10GwqjbqbpbaL1S3BzO/QiBDJGp6G8T4h66Dh11gyu++EIv6edPZcDZWDgdLvMelpnMuSdAJevb/3qzsYXne/6LBok5Fv6Bt6ZnjUl1zgAKIEc50TldM= 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.24 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 mailout1.samsung.com (KnoxPortal) with ESMTP id 20240125043705epoutp01b5563a18b45d2faff699dc4a7c0fdb05~tfSNzDx_U0209802098epoutp01e for ; Thu, 25 Jan 2024 04:37:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20240125043705epoutp01b5563a18b45d2faff699dc4a7c0fdb05~tfSNzDx_U0209802098epoutp01e 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-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 Content-Type: text/plain; charset="utf-8" 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_de= vice *hdev, static __u8 *samsung_irda_report_fixup(struct hid_device *hdev, __u8 *rdes= c, unsigned int *rsize) { - if (*rsize =3D=3D 184 && rdesc[175] =3D=3D 0x25 && rdesc[176] =3D=3D 0x40= && - rdesc[177] =3D=3D 0x75 && rdesc[178] =3D=3D 0x30 && - rdesc[179] =3D=3D 0x95 && rdesc[180] =3D=3D 0x01 && + if (*rsize =3D=3D 184 && !memcmp(&rdesc[175], "\x25\x40\x75\x30\x95\x01",= 6) && rdesc[182] =3D=3D 0x40) { samsung_irda_dev_trace(hdev, 184); rdesc[176] =3D 0xff; rdesc[178] =3D 0x08; rdesc[180] =3D 0x06; rdesc[182] =3D 0x42; - } else - if (*rsize =3D=3D 203 && rdesc[192] =3D=3D 0x15 && rdesc[193] =3D=3D 0x0 = && - rdesc[194] =3D=3D 0x25 && rdesc[195] =3D=3D 0x12) { + } else if (*rsize =3D=3D 203 && !memcmp(&rdesc[192], "\x15\x00\x25\x12", = 4)) { samsung_irda_dev_trace(hdev, 203); - rdesc[193] =3D 0x1; - rdesc[195] =3D 0xf; - } else - if (*rsize =3D=3D 135 && rdesc[124] =3D=3D 0x15 && rdesc[125] =3D=3D 0x0 = && - rdesc[126] =3D=3D 0x25 && rdesc[127] =3D=3D 0x11) { + rdesc[193] =3D 0x01; + rdesc[195] =3D 0x0f; + } else if (*rsize =3D=3D 135 && !memcmp(&rdesc[124], "\x15\x00\x25\x11", = 4)) { samsung_irda_dev_trace(hdev, 135); - rdesc[125] =3D 0x1; - rdesc[127] =3D 0xe; - } else - if (*rsize =3D=3D 171 && rdesc[160] =3D=3D 0x15 && rdesc[161] =3D=3D 0x0 = && - rdesc[162] =3D=3D 0x25 && rdesc[163] =3D=3D 0x01) { + rdesc[125] =3D 0x01; + rdesc[127] =3D 0x0e; + } else if (*rsize =3D=3D 171 && !memcmp(&rdesc[160], "\x15\x00\x25\x01", = 4)) { samsung_irda_dev_trace(hdev, 171); - rdesc[161] =3D 0x1; - rdesc[163] =3D 0x3; + rdesc[161] =3D 0x01; + rdesc[163] =3D 0x03; } return rdesc; } @@ -99,7 +91,7 @@ static int samsung_kbd_mouse_input_mapping(struct hid_dev= ice *hdev, struct usb_interface *intf =3D to_usb_interface(hdev->dev.parent); unsigned short ifnum =3D intf->cur_altsetting->desc.bInterfaceNumber; =20 - if (1 !=3D ifnum || HID_UP_CONSUMER !=3D (usage->hid & HID_USAGE_PAGE)) + if (ifnum !=3D 1 || HID_UP_CONSUMER !=3D (usage->hid & HID_USAGE_PAGE)) return 0; =20 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, =20 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_d= evice *hdev, static __u8 *samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE =3D=3D hdev->product && hid_is_usb(hd= ev)) + if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_IR_REMOTE && hid_is_usb(hd= ev)) rdesc =3D samsung_irda_report_fixup(hdev, rdesc, rsize); return rdesc; } @@ -139,7 +153,7 @@ static int samsung_input_mapping(struct hid_device *hde= v, struct hid_input *hi, { int ret =3D 0; =20 - if (USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE =3D=3D hdev->product && hid_= is_usb(hdev)) + if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE && hid_= is_usb(hdev)) ret =3D samsung_kbd_mouse_input_mapping(hdev, hi, field, usage, bit, max); =20 @@ -158,7 +172,7 @@ static int samsung_probe(struct hid_device *hdev, goto err_free; } =20 - if (USB_DEVICE_ID_SAMSUNG_IR_REMOTE =3D=3D hdev->product) { + if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_IR_REMOTE) { if (!hid_is_usb(hdev)) { ret =3D -EINVAL; goto err_free; --=20 2.34.1 From nobody Wed Dec 24 16:19:56 2025 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 EC72010A37 for ; Thu, 25 Jan 2024 04:37:18 +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=1706157440; cv=none; b=laHDAdtw2NbrcvV6P/8dOFBFz5ihMzTmiQ2sRt8m4lB/9HL2lG8kg1+jq5cuGngn4VzFb1oSb+zHYP1buLMnZmMr/CXVV5LNC5HAZve+qtPehNhDjsIyJmTVbtbKTA7rAwyi/Udrr62Rq4Y0ihHPk4U7b1xw0xM05oChTmkIt9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157440; c=relaxed/simple; bh=RErscL7igkrg2TYIr7QQtxltUVjpmwgtImO9C3vZ9Jo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=eUDJmyoABTwsfr/JDiq+1WpK4ZDgmcpXotR3fh3TQOHOeLpJzjIJj8MwgtMXxKUQFo46pGKoqdpDU9WNhr5e/ka1mVaWc59wiO3uXks44KSRBwCwv64DrhjxM3rsupqrNzW6dBprZChWRVNQzBWLFvJu6ZS7PgV+DvxN2/mwtz8= 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.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="tYXXNZDI" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240125043717epoutp02a0f96c656444371a62b7eb78bfcc3417~tfSZDVbI_2235522355epoutp02k for ; Thu, 25 Jan 2024 04:37:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240125043717epoutp02a0f96c656444371a62b7eb78bfcc3417~tfSZDVbI_2235522355epoutp02k 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-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 Content-Type: text/plain; charset="utf-8" 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 =20 #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 =20 #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; } =20 +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 =3D=3D (usage->hid & HID_USAGE_PAGE) || + HID_UP_KEYBOARD =3D=3D (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 =3D=3D (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 =3D=3D (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 *hde= v, struct hid_input *hi, if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE && hid_= is_usb(hdev)) ret =3D samsung_kbd_mouse_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) + ret =3D samsung_kbd_input_mapping(hdev, + hi, field, usage, bit, max); =20 return ret; } @@ -198,6 +294,7 @@ static int samsung_probe(struct hid_device *hdev, static const struct hid_device_id samsung_devices[] =3D { { 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_KB= D_MOUSE) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_KBD) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices); --=20 2.34.1 From nobody Wed Dec 24 16:19:56 2025 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 50E55111A2 for ; Thu, 25 Jan 2024 04:37:26 +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=1706157449; cv=none; b=Yan8hBtzzgVi+ILyn3mg2QwnOIfdJXI7WW2sUDVsumkhALmP8r7qDbUle92IHPSb5e9KQD0vUvVjTW0zS9BhWVq6K8WHwQap1sbIfOrEXBfQT8uGeGjtKm3f0FtSG2WWKb7CPVt1jXeMt75aCDN0s7h9hJwEu028Mt/2cUVjaAI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157449; c=relaxed/simple; bh=htuLjyh7MD+2wiik6bveKuTHw4ikcwrKyoVr5y6JoGU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=XMuANi4w0I95iCAPSg0uZe5lUIxFUTjgMRRBSL1Z0I3W7b8D7cpyPb/PDOjBr5S3XdDXNe/pqH1LAwAubKAW6iqkAgYToLJtuUSdpDq400HwGoNB6tfPz38Wq1/ZpxaC5rCv9A24oqTNucs7cR5yYEtVIS2LDXxIH1uFlAbk3XM= 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.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="Al2c6Ffo" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20240125043724epoutp038fd5debd0fe76f8e9daafa6d9127a7eb~tfSfoMh5K0190401904epoutp03X for ; Thu, 25 Jan 2024 04:37:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240125043724epoutp038fd5debd0fe76f8e9daafa6d9127a7eb~tfSfoMh5K0190401904epoutp03X 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-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 Content-Type: text/plain; charset="utf-8" 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 =20 #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; } =20 +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 =3D=3D (usage->hid & HID_USAGE_PAGE) || + HID_UP_CONSUMER =3D=3D (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 =3D=3D (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 =3D=3D (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 *hde= v, struct hid_input *hi, else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD) ret =3D samsung_kbd_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD) + ret =3D samsung_gamepad_input_mapping(hdev, + hi, field, usage, bit, max); =20 return ret; } @@ -295,6 +389,7 @@ static const struct hid_device_id samsung_devices[] =3D= { { 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_KB= D_MOUSE) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_KBD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_GAMEPAD) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices); --=20 2.34.1 From nobody Wed Dec 24 16:19:56 2025 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) (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 4A1EA1171F for ; Thu, 25 Jan 2024 04:37:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.24 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157454; cv=none; b=Ks+kfA7HeXzSQT32XcKhU3wutphBX81cFoqKGaPyjJ9UQEh2Zs2EBLn1ec2T/KAcoD+4i8QwDOd97idVLM+PRuwbGb9S6qPk0d021os3DvY79zfKBRQWAqvoQIdJ+iRRy0lf56SiWnL1QfAFNH6FG6ZIqBQwOBnszpMhDj9yQVc= 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.24 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 mailout1.samsung.com (KnoxPortal) with ESMTP id 20240125043730epoutp01b48f601c208aeb6004da396e23b74d03~tfSlcSyp50211902119epoutp01o for ; Thu, 25 Jan 2024 04:37:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20240125043730epoutp01b48f601c208aeb6004da396e23b74d03~tfSlcSyp50211902119epoutp01o 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-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 Content-Type: text/plain; charset="utf-8" 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 =20 #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_de= vice *hdev, return 1; } =20 +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->abs= bit[0], + usage->hid & HID_USAGE_PAGE); + + if (((usage->hid & HID_USAGE_PAGE) !=3D HID_UP_CONSUMER) && ((usage->hid = & HID_USAGE_PAGE) !=3D 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 *hde= v, struct hid_input *hi, else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_GAMEPAD) ret =3D samsung_gamepad_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE) + ret =3D samsung_actionmouse_input_mapping(hdev, + hi, field, usage, bit, max); =20 return ret; } @@ -390,6 +416,7 @@ static const struct hid_device_id samsung_devices[] =3D= { { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KB= D_MOUSE) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_KBD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_GAMEPAD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_ACTIONMOUSE) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices); --=20 2.34.1 From nobody Wed Dec 24 16:19:56 2025 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 052CB125B2 for ; Thu, 25 Jan 2024 04:37:42 +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=1706157465; cv=none; b=NhRvzUOcFZVvOQ1S127Ian6bmiKqCFTFJJziIPIpZOgp3pd/xvFGdh8uqGHA4DQaJdRxtWv9hOCRrMFn0nKlpXnNdeqgi3B2vD5jEcStVRXWVfaHF+BT/vZ8tE3eXvBIn8DlzsIV2idwApQBR+o59svWTTHuBRGwIamwDyNOvEE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706157465; c=relaxed/simple; bh=N6YRbOW5sc62cmePVN+BHVrn7+I8UHKno0vh3VSNZR8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=nTGnmMlgXKoVrOWwTxAanJVNTg9fQdMd8t51olAtfNat9ZX64o2c0jqylE2u+BAM0L/irRe+4Mz0bKLWWka97pwdP4Ca31BEsYmjb6ay2i5VfqpSOvG018hPp+tH3PdMROUODIqAhUFJqtLh2NdXsn+s7sBfGPL/Wt4ukT5qFM8= 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.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="im/a+eHc" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20240125043741epoutp03bc0aeb67a64372a6f7dcb02df6d97cfe~tfSvVfC-_0190001900epoutp03n for ; Thu, 25 Jan 2024 04:37:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240125043741epoutp03bc0aeb67a64372a6f7dcb02df6d97cfe~tfSvVfC-_0190001900epoutp03n 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-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 Content-Type: text/plain; charset="utf-8" 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 inpu= t 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 =20 #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 h= id_device *hdev, return 1; } =20 +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 =3D=3D (usage->hid & HID_USAGE_PAGE) || + HID_UP_KEYBOARD =3D=3D (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 =3D=3D (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 =3D=3D (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 *hd= ev, struct hid_input *hi, else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_ACTIONMOUSE) ret =3D samsung_actionmouse_input_mapping(hdev, hi, field, usage, bit, max); + else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_UNIVERSAL_KB= D) + ret =3D samsung_universal_kbd_input_mapping(hdev, + hi, field, usage, bit, max); + else if (hdev->product =3D=3D USB_DEVICE_ID_SAMSUNG_WIRELESS_MULTI_HOGP_K= BD) + ret =3D samsung_universal_kbd_input_mapping(hdev, + hi, field, usage, bit, max); =20 return ret; } @@ -417,6 +546,8 @@ static const struct hid_device_id samsung_devices[] =3D= { { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_KBD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_GAMEPAD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_ACTIONMOUSE) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_UNIVERSAL_KBD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SAMSUNG_ELECTRONICS, USB_DEVICE_ID_S= AMSUNG_WIRELESS_MULTI_HOGP_KBD) }, { } }; MODULE_DEVICE_TABLE(hid, samsung_devices); --=20 2.34.1