From nobody Wed Dec 24 18:05:11 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 AC2437C09A for ; Wed, 24 Jan 2024 16:11:10 +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=1706112672; cv=none; b=M8n7tNCMa3ygMx19vvEFNl9UOwkLVgN84wSUNteDSP9gb5oUt+JzRJDjLnE7xuGYf51S47JFPQlB/UbaAuabILL+vqzsRH2J3vUJ464x+/jntF/2pBcFUv5rQTVq+V0GEpfD+2CKPba3qgLK5ELKxg+L0E5lJmThuK2WBYJydGY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706112672; 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=JsZf6ujQoC+h3pK7X7F+Qlw8tfEvkJ3wO+evLRe/1qWFeymjAXMhgz2jG+bdTfiWjKKA2VZZ+vuXNOoC0zfGSiBYPnvzR0SourIbbzSVCYgFQE1EB1r6ivuRAAAzIn8s0nsL/J/SheP/k7/JgCJa2e4zS9YvsnpRbkJT5ZpzMIM= 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=HLPHKUNq; 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="HLPHKUNq" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240124161108epoutp02dcc6369e6c525b8c73618d4a5d370123~tVG7CDN5F0913409134epoutp020 for ; Wed, 24 Jan 2024 16:11:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240124161108epoutp02dcc6369e6c525b8c73618d4a5d370123~tVG7CDN5F0913409134epoutp020 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706112668; bh=FxRt1IQQ9RC5YoH6B7ssFdDYXaY2b2Jj8AIgAplcqlw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HLPHKUNqcOeK/qon2a+VP2TsyWxBCyBCDoWtKMOCJ51qKvQAWvNz3vYBD+dhCK27I JBOHP85nc9NgFzSgWSjClNFFjRQivJsrbm7Bop/HScFA1USeF+qrXlQIk4VtwJy2O7 MFmrEHi32LEySt+R2aCFVdHGkfMdBx6oKxsrFylk= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20240124161107epcas5p2108f973d053b8339a151d2c5e078493d~tVG6dKweF0409204092epcas5p2n; Wed, 24 Jan 2024 16:11:07 +0000 (GMT) Received: from epsmgec5p1new.samsung.com (unknown [182.195.38.182]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4TKppy19PMz4x9Pr; Wed, 24 Jan 2024 16:11:06 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmgec5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 5D.8A.08567.99631B56; Thu, 25 Jan 2024 01:11:06 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240124161105epcas5p2d1ba581f56e7c0a401a68790202f663b~tVG4N_HCq0408404084epcas5p2o; Wed, 24 Jan 2024 16:11:05 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240124161105epsmtrp201b5a3a3c70eeeaca80295120925d3c1~tVG4NB6Xn1827518275epsmtrp2O; Wed, 24 Jan 2024 16:11:05 +0000 (GMT) X-AuditID: b6c32a44-617fd70000002177-50-65b13699244a Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id A9.B9.07368.99631B56; Thu, 25 Jan 2024 01:11:05 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240124161103epsmtip1f2e8dd42a52f89bcb4b9d8eb3efa7597~tVG2v_SPy1251112511epsmtip1g; Wed, 24 Jan 2024 16:11:03 +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 v3 1/6] HID Samsung : Broaden device compatibility in samsung driver. Date: Wed, 24 Jan 2024 21:40:23 +0530 Message-Id: <20240124161029.3756075-2-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240124161029.3756075-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+LIzCtJLcpLzFFi42LZdlhTS3eW2cZUg1PbmS2uT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xs0vPxkLtghU3O5cx9bAeIK3i5GTQ0LARKLpfjNLFyMXh5DAbkaJJXOe M0I4nxglLn9uY4dwvjFK7F/wkh2mZfWjXiaIxF5Gic6Fs9ggnE4miWWr+sGq2AS0JPqOfGcC sUUEIiTeLdjECGIzC1xnlHjwMBDEFhYokli5dwMriM0ioCrRemkqG4jNK2ArsX/rMlaIbfIS +w+eZQaxOQXsJPr77kHVCEqcnPmEBWKmvETz1tnMIEdICHxll1i6exILRLOLxJ4Hi6FsYYlX x7dAvSAl8fndXjaIhm5GiaW3j7FDODMYJVp2XmWGqLKX+Pl6AlAVB9AKTYn1u/QhtvFJ9P5+ wgQSlhDglehoE4KoVpF42rWbFWb+9xMbmSBsD4m+w4ehITSRUeLq0ZlMExjlZyF5YhaSJ2Yh bFvAyLyKUTK1oDg3PTXZtMAwL7UcHrfJ+bmbGMEpU8tlB+ON+f/0DjEycTAeYpTgYFYS4TUx 3ZgqxJuSWFmVWpQfX1Sak1p8iNEUGMoTmaVEk/OBSTuvJN7QxNLAxMzMzMTS2MxQSZz3devc FCGB9MSS1OzU1ILUIpg+Jg5OqQam5u33I3RumuoJ2FkzNvgtuVpbeTrFpeHozvvfKtjnvFP6 oBt35JW4K4/p/rT/2ybdaWz7lfYw+vvetmrjPw94ruxPemRjKafoZnatJqVIZ2NVo6Lq8xsB Pn3HpQ/KvpBKeii288Ox+9zPV5o2KpbMLZuftuTe14VT73+8cz4sNnCv4UrLsK3/FnCwHDl1 8cX2pNinph6c/1ft/mF7/0RgqtV0c2X5XAOdJU+jHU5GRb/+ME+tJySDw/Sbr31gwbut9zN4 ymN8Wn2b/zyIfMYRfjI8NbwlLI+ZQ1o52iM97VZVfO9n4W0+d3MZ3SZJznGdP2N/7oRrZbH/ Jxh/PO+yzamX5aFwdtS9Bxn7twcosRRnJBpqMRcVJwIAUXh1+SIEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsWy7bCSnO5Ms42pBjv/iltcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGzS8/GQu2CFTc7lzH1sB4greLkZNDQsBEYvWj XiYQW0hgN6PEpeWiEHEpiVXX7zFC2MISK/89Z+9i5AKqaWeSuHpzHzNIgk1AS6LvyHewZhGB CIlp/9YyghQxC9xnlNi6/yobSEJYoEDi6JJesAYWAVWJ1ktTweK8ArYS+7cuY4XYIC+x/+BZ sBpOATuJ/r57bBAX2Urs+d7LAlEvKHFy5hMwmxmovnnrbOYJjAKzkKRmIUktYGRaxSiZWlCc m56bbFhgmJdarlecmFtcmpeul5yfu4kRHOhaGjsY783/p3eIkYmD8RCjBAezkgivienGVCHe lMTKqtSi/Pii0pzU4kOM0hwsSuK8hjNmpwgJpCeWpGanphakFsFkmTg4pRqYHnXUfTB02PHV Lf6sWfiez9vv6v+sd/qfpWeSI6TMKn3twSSlr9wV196ZzbmRcuXTZK/uqSvdufXfcV2MsVKR DVC+cUgjwkEkUXD3O4fA3Qan+lZUaT2/7nfNMo1tdvmLTz1pEh9KYhkMny33yuDlKb+25JtL 4rmbn1W1lnxc/2I3L7/o3Cnqk6epVCxaGBHut+WiEKPcxMJT+pctAq8dX3AvdKuTS9grj+XH 1SYu5fI4Mktn7XElx1UBRw6f69iQNHdSVfaM1n+laxX/PhH8lyhZX17n9TV6xn/ux/ODXq5x snjXKlKxe3agXN855Ttbrr05zrf3mIf26/2haZ3ib3jNAw+3BK5/5XBkpnSErxJLcUaioRZz UXEiAF8UCVPjAgAA X-CMS-MailID: 20240124161105epcas5p2d1ba581f56e7c0a401a68790202f663b X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240124161105epcas5p2d1ba581f56e7c0a401a68790202f663b References: <20240124161029.3756075-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 18:05:11 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 CC74D7E584 for ; Wed, 24 Jan 2024 16:11:18 +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=1706112680; cv=none; b=Iu0m6J3+b45mA2SX7VNhIy2qxBr5E0Dzv7B2BzoCYPIT2cdByKR1aXnaEwtoOY9+Tbr1TPTdQ0XKwgKB3m/zu9vJipQsRS6yYa+ds7cPT1m5agSC1bX9T1MCpxxY11qPjThrajBXo9kHY6btgaJrpN+dQjY86H9D6p4e53oZAU0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706112680; c=relaxed/simple; bh=rmEWhlVDpeIv0NBvUoVUkcUuNtoCG83x6jLTykAx0mI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=bCP1+IMTDnBVIMqZRUXVTdaB5L1jrJPid2IfmVDHm/AdmsTA9dDogocIFqB7szreGMF0w9ijqZIYauFiOmu3Rn2Ud7Y0gDIq3/sQ2v8shWL7/8K4s02iwXVWR3iWLjTmWcllIS35ZBqNGXWc4M11svrq1dQgsVpjkf35SO+6Swc= 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=R6Wv1uFu; 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="R6Wv1uFu" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20240124161116epoutp01aa98b5089f0c103b75268b67019b6781~tVHCt8q-C2165721657epoutp01t for ; Wed, 24 Jan 2024 16:11:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20240124161116epoutp01aa98b5089f0c103b75268b67019b6781~tVHCt8q-C2165721657epoutp01t DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706112676; bh=KW0GPlc8JiP+I2GAgypKX/jwr3P9ZdZ55AOnVvit4IE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R6Wv1uFuIuD9sOD7K10nWZaqcfuJPpBTnNHXk2/9Qs7e/zcNh7XplNAoxXoM5eNyB ogP45hwBWmOO5wSMSYKJnpqsa40lv+26AbqXDpKyIxBr7TYM0ZAr7KKN2aePzroMDn TEmGbgGPzwX6v4+zqMDKevVtZrlyfsfqyJygNISU= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240124161115epcas5p3211e75c97e58314bb598ccb8891f7656~tVHB91QF30932009320epcas5p31; Wed, 24 Jan 2024 16:11:15 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.178]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4TKpq61Zm8z4x9Pq; Wed, 24 Jan 2024 16:11:14 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 4A.0A.19369.2A631B56; Thu, 25 Jan 2024 01:11:14 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20240124161113epcas5p154500f0e71e1145e94f2779ca4c92948~tVG-3ajHo2561625616epcas5p1X; Wed, 24 Jan 2024 16:11:13 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240124161113epsmtrp2bb0a7c8374c6cfa1a0f324bd503ab9d7~tVG-2wPVK1827518275epsmtrp2S; Wed, 24 Jan 2024 16:11:13 +0000 (GMT) X-AuditID: b6c32a50-c99ff70000004ba9-72-65b136a2a0a1 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id 03.CA.18939.1A631B56; Thu, 25 Jan 2024 01:11:13 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240124161112epsmtip1e4a0213f489baa74271d04c50b80b157~tVG_a1XS21326113261epsmtip1f; Wed, 24 Jan 2024 16:11:12 +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 v3 2/6] HID: Samsung : Fix the checkpatch complain. Rewritten code using memcmp where applicable. Date: Wed, 24 Jan 2024 21:40:24 +0530 Message-Id: <20240124161029.3756075-3-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240124161029.3756075-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+LIzCtJLcpLzFFi42LZdlhTXXeR2cZUg7lvOS2uT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xvmr/5kLTmpVTFp2g6WBcYtyFyMnh4SAicTWlZuYuhi5OIQE9jBKnJxy jB3C+cQosXjPARY459+ihSwwLf/XL4Kq2skocXTbNGYIp5NJ4tLmH0wgVWwCWhJ9R76D2SIC ERLvFmxiBLGZBa4zSjx4GAjSICzQxyjxe/sSsCIWAVWJRc27gMZycPAK2Ep8WGAAsU1eYv/B s8wgNqeAnUR/3z02EJtXQFDi5MwnLBAz5SWat84GO0JC4Cu7xOd/V5khml0kTnw7wghhC0u8 Or6FHcKWkvj8bi8bREM3o8TS2xBfSwjMYJRo2QnTbS/x8/UENpCLmAU0Jdbv0ofYxifR+/sJ E0hYQoBXoqNNCKJaReJp125WmPnfT2yEKvGQONYaBBIWEpjIKDFvs9QERvlZSF6YheSFWQi7 FjAyr2KUSi0ozk1PTTYtMNTNSy2HR21yfu4mRnDC1ArYwbh6w1+9Q4xMHIyHGCU4mJVEeE1M N6YK8aYkVlalFuXHF5XmpBYfYjQFhvFEZinR5Hxgys4riTc0sTQwMTMzM7E0NjNUEud93To3 RUggPbEkNTs1tSC1CKaPiYNTqoEpy6YyJ0lpxTwDps2vjs+6GDO1Pf/Mr2mNLssmVV1tcvWO 5eGpe9TAucXdndFb/mHz22mbnr96ev1/n6raea0HU+K1j0mZhQomLz+pvzwv+biryaQkN6Xb bxff9LwcF8n1dHZl7LUDfL7JPBViil9eewot5rH5xRDK4MJxePr8HLk8boum5sJlZkbNP9aZ xFffW/de+3HvJo4Lku4Shcbfbtp62KVZPX2aXxUsP2n3BCUpCeWJt8tZze4uXLd54UeT7+Hf zl9cbzP1cq7jMdNbLhstOPf8dXbc4tz39rBPqvncpYqrAzaF7q/bEaFz4IL0Af7e5dxnkp3a vJVabT+xi++QEr6jH1FbZfWTxUiJpTgj0VCLuag4EQB20EZoIQQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDLMWRmVeSWpSXmKPExsWy7bCSnO5Cs42pBp+fqlpcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfG+av/mQtOalVMWnaDpYFxi3IXIyeHhICJxP/1 i9hBbCGB7YwSPZNqIeJSEquu32OEsIUlVv57DlTDBVTTziRx5lULK0iCTUBLou/IdyYQW0Qg QmLav7WMIEXMAvcZJbbuv8oG4ggL9DBKnHvRBlbFIqAqsah5F9AoDg5eAVuJDwsMIDbIS+w/ eJYZxOYUsJPo77vHBnGRrcSe770sIDavgKDEyZlPwGxmoPrmrbOZJzAKzEKSmoUktYCRaRWj aGpBcW56bnKBoV5xYm5xaV66XnJ+7iZGcIBrBe1gXLb+r94hRiYOxkOMEhzMSiK8JqYbU4V4 UxIrq1KL8uOLSnNSiw8xSnOwKInzKud0pggJpCeWpGanphakFsFkmTg4pRqYNL8rzl3vd0dm H0OFV4/hjzXMYvsuvajxCdVN+h0Qcj1Q9Os+8xWnFBY/MU0+FLtk/TmLGbOXuXB+PKF44PyP hB/6fwXNfHf8UZA0fWixKmWB2kNPkf5Pz461i+5PE62/JSHBNCXhjNJZfnvHeLOSFVGbPuyb ypPw90ddZVDERsaoOROqGW+6LnjF6uWyZZ3LN4aTNy8urRZ+35fCJlbR81Ex1/r6qUU8Mtw6 QuYCktsvPdJhaH5yc7nuEYYEho+/K39te1Toe5qpTUD4k95Mmymsltxnf9kuyPg8sfvPH1f2 1E7vn0Hq06bMq3z74Lvs71Ye5fzk3s6fdUY5mzKjPcz2a59J5HnWxTnDpvSuEktxRqKhFnNR cSIAnhA4Ut8CAAA= X-CMS-MailID: 20240124161113epcas5p154500f0e71e1145e94f2779ca4c92948 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240124161113epcas5p154500f0e71e1145e94f2779ca4c92948 References: <20240124161029.3756075-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 18:05:11 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 379FB7E596 for ; Wed, 24 Jan 2024 16:11: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=1706112688; cv=none; b=jK9bO8ZzVnOtQu4U4sO+Vw2td+k3jTmKaUuHskzmdaU4FsrfGhs7RNW+hkzqv11e+wLJlUQRKtc6MWQlw3Kn1e3CPnnl+HG8srMR7LICx2JQzlTpgDHwCJEKGJxO8CiJGDYO/596SNZKoY2j7GoyqmfGNUJK+nJaAsQpkko0YgA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706112688; c=relaxed/simple; bh=gjb6UzmphU1fLW4iK3dWmvcJQoG7enxLnp+wvNbqm3o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=Lkq38QwdDrGYNSgzHAa+iRzdhn9m0dZZDeXjz7AkEqjpygLqVi/OSys4g52MVZZ5fo12R6aHQYgoR9YbH2eSJph0itcDpwkWnZ3nRqomkhccFB67TH7c4LoShKxdZui521q2ehiyJ0R4v1rEZdxZfYxZ+f0FvujfgeKeuw96AhQ= 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=sS979LcI; 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="sS979LcI" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20240124161123epoutp03d08ef7b18f2157a8d095df8a82ed3ef7~tVHJayXT_2126421264epoutp03k for ; Wed, 24 Jan 2024 16:11:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20240124161123epoutp03d08ef7b18f2157a8d095df8a82ed3ef7~tVHJayXT_2126421264epoutp03k DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706112684; bh=YYocl0PZ0LFHH8dX+SfcttbxYw4fewhczxNV2KWMvIc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sS979LcIU8h4haHdcEZOSICVFbisg3Q75qZzIF7TIXepvyPaxZaLCucrO62qZziXp 5LwjriPjN8FHlCIkWCFCZP5epLhans4Z+bXUqhSeQbgBr0iMUMNS/HLGrS/XZg/9fF MbxVA8KRDBBkwr88LHz3wIx/36jhn9i2HwNjfAB4= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20240124161123epcas5p23f0817e17010ca8d48bb9799ffb31283~tVHJKcrUx0408404084epcas5p2A; Wed, 24 Jan 2024 16:11:23 +0000 (GMT) Received: from epsmgec5p1new.samsung.com (unknown [182.195.38.178]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4TKpqF6v3rz4x9Pt; Wed, 24 Jan 2024 16:11:21 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmgec5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id DE.8A.08567.9A631B56; Thu, 25 Jan 2024 01:11:21 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20240124161121epcas5p1fef1a14624b26cc436b899d9f6cde164~tVHHA8l6K2559125591epcas5p1a; Wed, 24 Jan 2024 16:11:21 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240124161121epsmtrp18e1a76e1639d887a9cb297145dd58c22~tVHHASwZ41601516015epsmtrp1o; Wed, 24 Jan 2024 16:11:21 +0000 (GMT) X-AuditID: b6c32a44-617fd70000002177-64-65b136a9a4da Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id C0.34.08755.9A631B56; Thu, 25 Jan 2024 01:11:21 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240124161119epsmtip1f679da7e4d53e86adf1237a5da5ed17a~tVHFlh_P71251112511epsmtip1j; Wed, 24 Jan 2024 16:11:19 +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 v3 3/6] HID: Samsung : Add Samsung wireless keyboard support. Date: Wed, 24 Jan 2024 21:40:25 +0530 Message-Id: <20240124161029.3756075-4-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240124161029.3756075-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+NgFuphk+LIzCtJLcpLzFFi42LZdlhTU3el2cZUg4szTSyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2Ru+eJ2wFf9Qqvl/YyNbAOEehi5GDQ0LARGLKbcEuRi4OIYHdjBJv9y5g gXA+MUpsXvuXHcL5xihx5s97pi5GTrCOidd6oRJ7GSUm925ihXA6mSQ+zpjLAlLFJqAl0Xfk O1iHiECExLsFmxhBbGaB64wSDx4GgtjCAlkSP5bfZgOxWQRUJbZtXQJm8wrYShzfsJ8RYpu8 xP6DZ5lBbE4BO4n+vntQNYISJ2c+YYGYKS/RvHU2M0T9R3aJ30e5IWwXiXVHT7NC2MISr45v YYewpSRe9reBfSAh0M0osfT2MShnBqNEy86rUJPsJX6+nsAGCiVmAU2J9bv0IZbxSfT+fsIE CTxeiY42IYhqFYmnXbtZYeZ/P7ERGloeEmtnHgCbKCQwkVHi8n2LCYzys5C8MAvJC7MQli1g ZF7FKJlaUJybnppsWmCYl1oOj9jk/NxNjOBkqeWyg/HG/H96hxiZOBgPMUpwMCuJ8JqYbkwV 4k1JrKxKLcqPLyrNSS0+xGgKDOOJzFKiyfnAdJ1XEm9oYmlgYmZmZmJpbGaoJM77unVuipBA emJJanZqakFqEUwfEwenVAPToeVKNStmTPLr4zE8cuuq9cWPz4/4luXsPWTZxRHRkGQZzNu8 8WnG7uwzKcqrxAurEspWiTzIiGAXvnSsNOsk23Lfgg9GD9+6fz7j7cj2znrrnBimoluNV24s XafNF8VbKWLxO39JVMbplz9Y/ucw3jR/Nn2PxP+MuOK383hk31xq39lZ6OH/75a32x3N5XdW 5IhZ/Pu8rsBsqc+DJ37ve7O2pv/KsG+2UN/baPL5iejakGNtDG6J7hqfdq/2tTpxLkR2drnU 1fcTb7Gx5l9tDWkryHLi43Xklvm75cBls1tcH+IiLXU6bMT2R637/NBoyatnabXOlnq3L0ms tlqSv3VB+xbnAkWeFSfPJz5QYinOSDTUYi4qTgQAqAiI5h8EAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsWy7bCSnO5Ks42pBn9XCVtcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAldG754nbAV/1Cq+X9jI1sA4R6GLkZNDQsBEYuK1 XvYuRi4OIYHdjBJNr78wQSSkJFZdv8cIYQtLrPz3HKqonUni9ZEesCI2AS2JviPfwWwRgQiJ af/WMoIUMQvcZ5TYuv8qG0hCWCBD4s+LTjCbRUBVYtvWJWA2r4CtxPEN+6E2yEvsP3iWGcTm FLCT6O+7B1YjBFSz53svC0S9oMTJmU/AbGag+uats5knMArMQpKahSS1gJFpFaNkakFxbnpu sWGBYV5quV5xYm5xaV66XnJ+7iZGcKhrae5g3L7qg94hRiYOxkOMEhzMSiK8JqYbU4V4UxIr q1KL8uOLSnNSiw8xSnOwKInzir/oTRESSE8sSc1OTS1ILYLJMnFwSjUwLbVxtZ09i0ef03Pp 0s4yg3SWkkUHfP3YLI6VOm88HZrs+frLJa8/B/6JBYQvn/V1ZaiX1qQd4r6/9X9fcLiQat77 dt6zvvj7KQetDnw0Sc02FNuZ/3dDXPIp3cIvb6aHsoTMt9Pb9rwjcqtmaca8xvqfRyYzztF9 ErP3sOS7H4fEl7Cqbw182Xi1S1v1XqSdrfvyLw57S2Sq7x4PqE63yl09//USfe/Uy/y/05dy xGTffZqz65dPhsmW6sgZByeozuLniXpm1birxNQj+bf5z0uM06NY9t9c+ed8nMlzqbq9nxUn V75zWpZf9eo0n9Y0j99JAXvmOka+vFS51DfjrZH7z2/a5s7ru7vfvn0WqcRSnJFoqMVcVJwI AM9Bp+vkAgAA X-CMS-MailID: 20240124161121epcas5p1fef1a14624b26cc436b899d9f6cde164 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240124161121epcas5p1fef1a14624b26cc436b899d9f6cde164 References: <20240124161029.3756075-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 | 108 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index fb30e228d35f..c4a2490a6496 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..cec532be987a 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -139,6 +139,110 @@ 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) { + /* Only for UK keyboard */ + /* key found */ +#ifdef CONFIG_HID_KK_UPGRADE + case 0x32: + samsung_kbd_mouse_map_key_clear(KEY_KBDILLUMTOGGLE); + break; + case 0x64: + samsung_kbd_mouse_map_key_clear(KEY_BACKSLASH); + break; +#else + case 0x32: + samsung_kbd_mouse_map_key_clear(KEY_BACKSLASH); + break; + case 0x64: + samsung_kbd_mouse_map_key_clear(KEY_102ND); + break; +#endif + /* 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 +260,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 +305,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 18:05:11 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 0BFD27CF37 for ; Wed, 24 Jan 2024 16:11:33 +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=1706112695; cv=none; b=EaGUk3bjsvI55UVG/LLxTx9IkVkV4TW3A7gDPJzFSh+PUa7aFHyxoZPZTYA0tKmM9K/bBecDdH5rSgytRjsGSGoZzMT6IsfiRyYt6ftjKVi0sm4IpU/WqoMbFg+V4cVp+D7gMdJ5R2J37tWPhfKUVRN9tjDViX8UzniF5UxCAeQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706112695; c=relaxed/simple; bh=7li+Hxsf+wL83uj3m0Pitx9JVztk/Cqvbj3cMlBFK2g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=qv1r5dhptgs3t3kcKIFUAShi0h+0HIx0rCT/S0nGVlsuBf/4vlbqZ8bNH3rcSua/0kkIZGsEEI9Lwj29Q/iiJ9iuDPhct+y9ujtz/gjkk39Fa0iFM6ksiQFvBV/kDCDMdctLRXSXWYfhjPX3VBE/3hqErcr0RpblM/RvIU+bgro= 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=dDp7CwBk; 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="dDp7CwBk" Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240124161131epoutp026931a678f553cd241a44e49396492044~tVHQ3k06Q0910909109epoutp02A for ; Wed, 24 Jan 2024 16:11:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240124161131epoutp026931a678f553cd241a44e49396492044~tVHQ3k06Q0910909109epoutp02A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706112692; bh=Ni46Nkp7ayqbORI9e18qVq1HTZEdKxuftPhx9y5VuYU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dDp7CwBkpD7pm7i7HeCQCME8TOjxHVp1YsuuqcgEkFkNmYZzsnKj4gVVRlFFgdI/J UlDWSte+kbnYCxMfCjBdPM5bj54ORcS3IJ/NJuZLUorZhS0hAi6/yBsguTzN7LFGtZ /UkoSYkym4lFJBwHyxrMrBFCUnmks3RBREhMxgOI= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20240124161130epcas5p102eed728f947436409e7f25dc4b4ac31~tVHP1_J_B2558925589epcas5p1X; Wed, 24 Jan 2024 16:11:30 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.175]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4TKpqP15Fmz4x9Pt; Wed, 24 Jan 2024 16:11:29 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 5B.0A.19369.0B631B56; Thu, 25 Jan 2024 01:11:28 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20240124161128epcas5p38a703fcedbacb6e506d9c46579b07b04~tVHNtd1DY0931509315epcas5p37; Wed, 24 Jan 2024 16:11:28 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240124161128epsmtrp2f660edcd2b84eb01603db197db250fd9~tVHNsxdCm1827518275epsmtrp2T; Wed, 24 Jan 2024 16:11:28 +0000 (GMT) X-AuditID: b6c32a50-9e1ff70000004ba9-85-65b136b01996 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 71.34.08755.0B631B56; Thu, 25 Jan 2024 01:11:28 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240124161126epsmtip116dc2461168747e5797d574a12225c27~tVHMPFWAf1251112511epsmtip1k; Wed, 24 Jan 2024 16:11: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 v3 4/6] HID: Samsung : Add Samsung wireless gamepad support. Date: Wed, 24 Jan 2024 21:40:26 +0530 Message-Id: <20240124161029.3756075-5-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240124161029.3756075-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+LIzCtJLcpLzFFi42LZdlhTXXej2cZUg/WKFtenbGa1uL3A02Lr krmsFreOtzJavHywgd1i8+RHLBY3P31jtbi8aw6bRfvsZ4wWj1ZsYnLg8ti0qpPN4/2+q2we fVtWMXp83iQXwBKVbZORmpiSWqSQmpecn5KZl26r5B0c7xxvamZgqGtoaWGupJCXmJtqq+Ti E6DrlpkDdI6SQlliTilQKCCxuFhJ386mKL+0JFUhI7+4xFYptSAlp8CkQK84Mbe4NC9dLy+1 xMrQwMDIFKgwITtj/yTeghPKFU/v32BuYDwu28XIySEhYCJxbfsK5i5GLg4hgT2MEqcmrWAB SQgJfGKUWLRSFSLxjVFiZt93dpiOs+/72CESexklJnfMZ4Po6GSS6PucCmKzCWhJ9B35zgRi iwhESLxbsIkRxGYWuM4o8eBhYBcjB4ewQKbEg1lmIGEWAVWJj3c/gZXzCthKzF38gAlil7zE /oNnmUFsTgE7if6+e2wQNYISJ2c+YYEYKS/RvHU2M0T9V3aJo3/5IWwXiZlHe1ggbGGJV8e3 QN0vJfH53V42kPslBLoZJZbePsYO4cxglGjZeRVqkr3Ez9cT2EAOZRbQlFi/Sx9iGZ9E7+8n TCBhCQFeiY42IYhqFYmnXbtZYeZ/P7ER6n4Pic2H5zFCwmoio8TENXdZJjDKz0LywywkP8xC 2LaAkXkVo1RqQXFuemqyaYGhbl5qOTxek/NzNzGCE6VWwA7G1Rv+6h1iZOJgPMQowcGsJMJr YroxVYg3JbGyKrUoP76oNCe1+BCjKTCUJzJLiSbnA1N1Xkm8oYmlgYmZmZmJpbGZoZI47+vW uSlCAumJJanZqakFqUUwfUwcnFINTP4tTA8qty6JnddkJntvt+bJCL0OiwOGhnsYvn7blPPl 6VYb3Y+TAh/47zeYMHnqCUPP+y/5rzEs1nuvxOayw3XLyz7v2AscE4zbOrysTjBL7zz4mqFj MbfpVckdU28vFjC3vnR8bWBhkn3okX/XJB7XPFjTzpl3UcVo9TK1VLlJlZ+k9pRq17c25QoH izw7eC2pU8Cg6bXPFvdLi29+eu8m0mFWOGMyy9qbs97crHg7O9Q+nc1CJsu2ZEvxXeYYY++5 G2SrLeRq3xS+tvn3z2oBx8TWqalvE1YeNT36b/Od6yU/7CSqn7YkrlYJvb+b7cl1u51OxZyf Q/zLhOJ/6D97F3lBY8ns/5sOhXFOalBiKc5INNRiLipOBABTXUhcHQQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsWy7bCSnO4Gs42pBv8eSVtcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfG/km8BSeUK57ev8HcwHhctouRk0NCwETi7Ps+ 9i5GLg4hgd2MEs9vHGaHSEhJrLp+jxHCFpZY+e85VFE7k8TJ5+vAEmwCWhJ9R74zgdgiAhES 0/6tZQQpYha4zyixdf9VNpCEsEC6xLYJLWBFLAKqEh/vfgKzeQVsJeYufsAEsUFeYv/Bs8wg NqeAnUR/3z2wXiGgmj3fe1kg6gUlTs58AmYzA9U3b53NPIFRYBaS1CwkqQWMTKsYJVMLinPT c4sNCwzzUsv1ihNzi0vz0vWS83M3MYIDXUtzB+P2VR/0DjEycTAeYpTgYFYS4TUx3ZgqxJuS WFmVWpQfX1Sak1p8iFGag0VJnFf8RW+KkEB6YklqdmpqQWoRTJaJg1OqgUnP7IZMBdv8O9yG RXetNeSuNtrcs2LZZz3t73+7Yv0FXhJLjPPy1aerRq6WvlSyTmJ1hzUTW/LMun1bljfelpae u/L4ro/Ldk7QMNayXvzp5U//JSwGMgonFmZaMZQJ+EzufvlfZvONnbM3Mu6xzp0m2+L9dIHV 8Tj2XydnPboX8srRsim/t3O57Gex8FbOuOTH4Rc+T5z1UvfllCrja7kLn2UZnar+u8dg/fV0 jb8rzIJjD0Qz86R9OvTNd8GC2bwzXTT5Pj8+cPxi5ONk5poLKpxGS+ZP0T4Y3hj6e9LyHwnX jrx3MtFTX7ledOody2IGdrFlBWrdu16onHn9rswyqdJYwSu944uyurXtukdKLMUZiYZazEXF iQDMYVLs4wIAAA== X-CMS-MailID: 20240124161128epcas5p38a703fcedbacb6e506d9c46579b07b04 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240124161128epcas5p38a703fcedbacb6e506d9c46579b07b04 References: <20240124161029.3756075-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 c4a2490a6496..621853b21923 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 cec532be987a..b786888ec077 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -243,6 +243,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) { @@ -263,6 +354,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; } @@ -306,6 +400,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 18:05:11 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 BBB367E788 for ; Wed, 24 Jan 2024 16:11:39 +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=1706112701; cv=none; b=H1qFbH7XO3vltbnEsmtetLaTeX4QZKr9dK5maSyBsXcq0iXPIHV8i10/SEZIftIpLr2H5RjWMB1wmiM4gNUMZmG1EFfBF726wNM17iqpwBaWjoipIkSaz50adi/PN7G2wxFwGOp3uP/gPNaUgjHi6Bwi29Wq+0GyP3ZbtNaRu98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706112701; c=relaxed/simple; bh=zmxwR3tFriZfm4Dig7g39jI6oSlOl2huvgOi+JZztTQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=MnZ1oLZ4XzLcxOJ3HA9WCkTmXnfIm679lGvewUSfaNsRHmy2a/VQ/xelERFilpvT4xc8Rn/gIj0S4KrBgo+Uj3WbVCQnQzAVGoWO5kG5KF4ErNVUARv101sm/pO9OCFFGApqUiUtQh/Z6MN3NfhGvOjivGWdn5pJPMpIJLMo7IA= 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=XthGBVfE; 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="XthGBVfE" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240124161137epoutp02613ce396e0172de47ef2e1ed1256a45a~tVHWH7Xpd1032110321epoutp02w for ; Wed, 24 Jan 2024 16:11:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240124161137epoutp02613ce396e0172de47ef2e1ed1256a45a~tVHWH7Xpd1032110321epoutp02w DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706112697; bh=bX84pGQ3NKqRyrB/DSbccXAMgFgpL5V0Zu280XLcWUs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XthGBVfEJde09MRcORMzkLXapweoM5koyfaIokcz+nvusEtNeY05LED90HbOhoa36 ldJzRxjudI9pGMig5aUAag0KPdCTcu6aRDl1TTQUnZuVa2oeD7E0CAD2QYeozk9QwA x78w0za6VNQGpi+MUbuxJZMZvDQhATN2VGSHj8M8= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20240124161137epcas5p1ade37693ecdfd5bd9e428b116c6b7fce~tVHVxQuUX2559125591epcas5p1f; Wed, 24 Jan 2024 16:11:37 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.183]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4TKpqW3zjmz4x9Pt; Wed, 24 Jan 2024 16:11:35 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 3A.D8.09634.7B631B56; Thu, 25 Jan 2024 01:11:35 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20240124161134epcas5p3f9f50330015d1d80d31087dac09d26da~tVHTh90KT0932009320epcas5p3-; Wed, 24 Jan 2024 16:11:34 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240124161134epsmtrp1866e03d88b3055b69f5da26c4f0036e2~tVHThPi0l1601516015epsmtrp1r; Wed, 24 Jan 2024 16:11:34 +0000 (GMT) X-AuditID: b6c32a49-eebff700000025a2-74-65b136b70d2b Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 16.E7.08817.6B631B56; Thu, 25 Jan 2024 01:11:34 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240124161133epsmtip1b9c19d68ca44d373901d3c653af16b30~tVHSAqKl31266312663epsmtip1n; Wed, 24 Jan 2024 16:11:33 +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 v3 5/6] HID: Samsung : Add Samsung wireless action mouse support. Date: Wed, 24 Jan 2024 21:40:27 +0530 Message-Id: <20240124161029.3756075-6-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240124161029.3756075-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+NgFuplk+LIzCtJLcpLzFFi42LZdlhTXXe72cZUg+NfJSyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xt/3L1kLVolX/Pgb08DYKNLFyMkhIWAiMeNqM1sXIxeHkMBuRome3inM EM4nRomlt3cwQjjfGCUu3NzDDNNy8/VtJojEXkaJzysXQDmdTBKHzuxgAqliE9CS6DvyHcwW EYiQeLdgEyOIzSxwnVHiwcNAEFtYIE9i//UP7CA2i4CqxIdVK9lAbF4BW4nezllsENvkJfYf PAu2mVPATqK/7x5UjaDEyZlPWCBmyks0b50NdreEwEd2iZMbvgIN5QByXCSeHVOCmCMs8er4 FnYIW0riZX8bO0R9N8ifx6CcGYwSLTuvQv1pL/Hz9QQ2kEHMApoS63fpQyzjk+j9/YQJYj6v REebEES1isTTrt2sMPO/n9jIBGF7SPz7dIIVEkATGSWenT3OPIFRfhaSH2Yh+WEWwrYFjMyr GCVTC4pz01OLTQsM81LL4TGbnJ+7iRGcLrU8dzDeffBB7xAjEwfjIUYJDmYlEV4T042pQrwp iZVVqUX58UWlOanFhxhNgYE8kVlKNDkfmLDzSuINTSwNTMzMzEwsjc0MlcR5X7fOTRESSE8s Sc1OTS1ILYLpY+LglGpg2rY+dPFjY4/zZsETdjst/NS44rjM4Slr/PPmZ97V7pniKaRsN/9k xooFxo6fv9y6rK5ev1ZlQpG59pdZjxJr7tSE7Er/Oqkn6I/rlq35lpxpFaZR0Vf+VCzgfOe5 Ktvu5mvWzRc19gXt8Z4nwPfDQPSnRt0vA+UHn05rdry4/bvMgH89/wp98SZ91c2uQl9SbLi3 B87eKu3g9eT0l9aI1w9+SKWav8rXcp8cOlVikQHDZMeJkY8qi/ofTZulO8lR0ilPZcFilVCP 05PeJEnd3il96SC3kH331wvuX5+WdU3K7nh7YpGh3VO+FbHJKVvOh/AJPnb5fSqguTtR8I+V m/6c9pUx1/gOZ6f+XSjSpsRSnJFoqMVcVJwIADoDZjwgBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsWy7bCSnO42s42pBjv/a1hcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfG3/cvWQtWiVf8+BvTwNgo0sXIySEhYCJx8/Vt pi5GLg4hgd2MEtvmTWeDSEhJrLp+jxHCFpZY+e85O0RRO5PE14Y/zCAJNgEtib4j35lAbBGB CIlp/9YyghQxC9xnlNi6/yrYJGGBHInjG76CTWIRUJX4sGolWJxXwFait3MW1DZ5if0Hz4IN 5RSwk+jvuwcWFwKq2fO9lwWiXlDi5MwnYDYzUH3z1tnMExgFZiFJzUKSWsDItIpRMrWgODc9 t9iwwCgvtVyvODG3uDQvXS85P3cTIzjQtbR2MO5Z9UHvECMTB+MhRgkOZiURXhPTjalCvCmJ lVWpRfnxRaU5qcWHGKU5WJTEeb+97k0REkhPLEnNTk0tSC2CyTJxcEo1MIkc6f103dMl8c1l Df3+S2tVtvgqHPPN3lc4Le6yap9N1fs9jSExRxKqN1Q1OjVv/VtxIPzNH5v1F+YcmW377MRT B8k33Ewxk55O7A+r3vnPYr2PSYmaRTTfAxmDqbfd4t+t8nhzaD57qe/+vtaQkJgg1xUe+Qsl Nul9XH/meNRG/p8zQt4xFvFzB/vvbb8Xme1/sskxJOaP+bY6u39SnQrNc9qf5PC7rg1cI1yd sFtnR5HxXuM+r5znLCvOBFVPVt04ezdrifSE0tUuvRtYt1S++/bpiO0J2asZeu2qSWsZq4ue q5SuWc70LLr//dyPyvtO2nhLpPit0GbwlbRYOcF3W+kWLdH5XX8Y2ncUK7EUZyQaajEXFScC AGR/CfTjAgAA X-CMS-MailID: 20240124161134epcas5p3f9f50330015d1d80d31087dac09d26da X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240124161134epcas5p3f9f50330015d1d80d31087dac09d26da References: <20240124161029.3756075-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 621853b21923..43a990086225 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 b786888ec077..df0de72062b7 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -334,6 +334,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) { @@ -357,6 +380,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; } @@ -401,6 +427,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 18:05:11 2025 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 C1DDC80058 for ; Wed, 24 Jan 2024 16:11:48 +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=1706112710; cv=none; b=ovTX6IBfZihbxb08JbdXprepnTSEUFCWm5U1GnZlpPjtRqD57QZ0Ykg34nzn8kjo9L+vJtmRJqI/VIYDReYyPqLD+w9+dUbmYbxu3nVj4+xwvxhRsne7d2uwMvnq+Evg8H/2QaHJ2C2MZXjf4I1U/iJ4Qr7KuPWaOnNXIFHy+HQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706112710; c=relaxed/simple; bh=d4bsKmm/S0cNV+rPnLXkgJTdv/5usqe7TAF0r+e9VBI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=cmGR2gD4H95WU5/gOIOtiLZfVoOao+0YBnaCBbjgXdHuK6fED54C8kwvCYl6kCJxhgRGpwiQEsgHIhd7DAPhayADuK4x5ck2oVwiBIm5VvuXQXuuBQAgR26tNAno8ttjWAwplAkAdENUiL0UyluRzQ7hxrKiAd0don3H7AEkSvo= 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=naF+CmDy; 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="naF+CmDy" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20240124161146epoutp04da9dc482dd0f9d55a7aeff2319a00562~tVHervRk92642826428epoutp04J for ; Wed, 24 Jan 2024 16:11:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20240124161146epoutp04da9dc482dd0f9d55a7aeff2319a00562~tVHervRk92642826428epoutp04J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1706112706; bh=h8EqZYKtyKm8YLRUkquBdtpHYnrssIr8zIGAQ4rp3Mc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=naF+CmDyo5iwxCLoK3eMWHLUASvl0NK8zthVT9jmhpQ+r0w+ZiElCY+AzFPOuY1pj /Cm0eraSlbsrctSntxKoQXbyva7F+0plQ4SsZj1X5D/NVTfgkCW/oUgJx8/s4FsNFt IpGFoh6aKO6f/sgAI7oUgYMuzrM4jDuq8u1slLJU= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20240124161145epcas5p46a1a72c03f970a81808f00b9ea17162d~tVHdhztvD1524215242epcas5p4w; Wed, 24 Jan 2024 16:11:45 +0000 (GMT) Received: from epsmges5p3new.samsung.com (unknown [182.195.38.176]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4TKpqg5p5fz4x9Pr; Wed, 24 Jan 2024 16:11:43 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id B0.5F.09672.FB631B56; Thu, 25 Jan 2024 01:11:43 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20240124161142epcas5p42fe248ea16530b66c617890bc495234b~tVHamGOpE1524115241epcas5p4r; Wed, 24 Jan 2024 16:11:42 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240124161142epsmtrp1643eaa5331301037219738476473db3f~tVHalc0vD1601516015epsmtrp1u; Wed, 24 Jan 2024 16:11:42 +0000 (GMT) X-AuditID: b6c32a4b-39fff700000025c8-9c-65b136bf4e62 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id E3.CA.18939.EB631B56; Thu, 25 Jan 2024 01:11:42 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20240124161140epsmtip19fbb19c480d74e7e21c0c23dc83e1550~tVHZJwhzq1251112511epsmtip1m; Wed, 24 Jan 2024 16:11:40 +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 v3 6/6] HID: Samsung : Add Samsung wireless bookcover and universal keyboard support. Date: Wed, 24 Jan 2024 21:40:28 +0530 Message-Id: <20240124161029.3756075-7-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240124161029.3756075-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+LIzCtJLcpLzFFi42LZdlhTU3e/2cZUg45lGhbXp2xmtbi9wNNi 65K5rBa3jrcyWrx8sIHdYvPkRywWNz99Y7W4vGsOm0X77GeMFo9WbGJy4PLYtKqTzeP9vqts Hn1bVjF6fN4kF8ASlW2TkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pmYKhraGlhrqSQl5ibaqvk 4hOg65aZA3SPkkJZYk4pUCggsbhYSd/Opii/tCRVISO/uMRWKbUgJafApECvODG3uDQvXS8v tcTK0MDAyBSoMCE7Y/72LqaCl4YVxx9+YGxg3K3ZxcjJISFgIjH74FvWLkYuDiGB3YwSU4/e YodwPjFKzDszA8Fpv/CFDaZl9YEXUImdjBIzPndA9XcySbS8PcUOUsUmoCXRd+Q7E4gtIhAh 8W7BJkYQm1ngOqPEg4eBIA3CAk2MEkff7WQBSbAIqEpM3t7MCmLzCthK/L/xkAVinbzE/oNn mUFsTgE7if6+e2wQNYISJ2c+YYEYKi/RvHU2M8hQCYGv7BIbd6xkhWh2kVi2YBHUIGGJV8e3 sEPYUhIv+9vYIRq6GSWW3j4G5cxglGjZeZUZospe4ufrCUDrOIBWaEqs36UPsY1Povf3EyaQ sIQAr0RHmxBEtYrE067drDDzv5/YyARhe0h8+zsf7GghgYmMEvv74yYwys9C8sMsJD/MQli2 gJF5FaNkakFxbnpqsWmBcV5qOTxuk/NzNzGCU6aW9w7GRw8+6B1iZOJgPMQowcGsJMJrYrox VYg3JbGyKrUoP76oNCe1+BCjKTCQJzJLiSbnA5N2Xkm8oYmlgYmZmZmJpbGZoZI47+vWuSlC AumJJanZqakFqUUwfUwcnFINTGtObGA3vDU5ep6lRCWvr+rcU6tjBCTsbT89d9w4OaVIaprL nNb+mV+3R204OTu/5Y6LXu7JUxXbc8Tzj763Dl+jXZS1nKutfP6VjeZ1zpaO4YaaZ65Mf1Hu vSpY5ugzTffzDrv9lt45dVWis2TvV+XPsWdfx2VNXyXgnyrC33Q2QdnrfArP30V1hmIJItai 9u3unh2vzyt/XmjUG1hw+fFkntmruI8xvnf12f/0yTbugKRjChqb5p5urGT6HDRJRejO1pMB bPc6wj+d2nrX6cU1lyk2F366PrS0c7urffalVenXTLMnq1JP3vlsXePj2P189czKE1Pnvpoc dU/ELNxy4TPlmNlS/kaH1j0PEFZiKc5INNRiLipOBACgoFZzIgQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrHLMWRmVeSWpSXmKPExsWy7bCSnO4+s42pBqfbRSyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlissmJTUnsyy1SN8ugStj/vYupoKXhhXHH35gbGDcrdnFyMkhIWAisfrA C/YuRi4OIYHtjBInHr9mg0hISay6fo8RwhaWWPnvOVRRO5PExw1vWEASbAJaEn1HvjOB2CIC ERLT/q1lBCliFrjPKLF1/1U2EEdYoIFRYt3Sz8wgVSwCqhKTtzezgti8ArYS/288ZIFYIS+x /+BZsBpOATuJ/r57YGcIAdXs+d7LAlEvKHFy5hMwmxmovnnrbOYJjAKzkKRmIUktYGRaxSia WlCcm56bXGCoV5yYW1yal66XnJ+7iREc5FpBOxiXrf+rd4iRiYPxEKMEB7OSCK+J6cZUId6U xMqq1KL8+KLSnNTiQ4zSHCxK4rzKOZ0pQgLpiSWp2ampBalFMFkmDk6pBib34Afih4p/7dp+ ZqK6/r3mRaed9CQnnfW/eaJAcs6JsxEMb+68LEx/vpPTrcquTPx04k8l9fN/WWda2/zhnbtO 5MdWh7NzbI9OLttxKbvlwrLmPQtOiHZH7l3Ke+Wr6NdPbuId2y2XPdq2Zuv+yIfi7AmTZsbt tir47iZg+f76Si6WF5/FNn2avVF8x+aK9ifGVlr1XVf7F+9a2jN770l+tefLpkXICNyeur7s fMb7lRdNbqWHcxTXfp7VM+XCvkWfypYk7ImNvB3N1yvNWXXY7eanBSfeXJNx13l+NuaMbXj7 rOZs1i0hc08x866Z/91YvMQgRPH95uTq+B5DYOqaeXVXXMeKebscorxO3HvYrcRSnJFoqMVc VJwIAH0XKKXhAgAA X-CMS-MailID: 20240124161142epcas5p42fe248ea16530b66c617890bc495234b X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240124161142epcas5p42fe248ea16530b66c617890bc495234b References: <20240124161029.3756075-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 | 142 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 43a990086225..e44a48b852fd 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 df0de72062b7..845768397036 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -357,6 +357,140 @@ 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) { + /* Only for UK keyboard */ + /* key found */ +#ifdef CONFIG_HID_KK_UPGRADE + case 0x32: + samsung_kbd_mouse_map_key_clear(KEY_KBDILLUMTOGGLE); + break; + case 0x64: + samsung_kbd_mouse_map_key_clear(KEY_BACKSLASH); + break; +#else + case 0x32: + samsung_kbd_mouse_map_key_clear(KEY_BACKSLASH); + break; + case 0x64: + samsung_kbd_mouse_map_key_clear(KEY_102ND); + break; +#endif + /* 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) { @@ -383,6 +517,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; } @@ -428,6 +568,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