From nobody Thu Dec 18 12:35:43 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 796D511C87 for ; Mon, 8 Jan 2024 09:20:05 +0000 (UTC) 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="Drt3uTDS" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240108091957epoutp026bbff054e48d4c8ecc13e71872a52bbc~oVLWQ5bvY0283902839epoutp02G for ; Mon, 8 Jan 2024 09:19:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240108091957epoutp026bbff054e48d4c8ecc13e71872a52bbc~oVLWQ5bvY0283902839epoutp02G DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1704705597; bh=dzkbZ/aJDTM0eaofC0HD6c34S5tpUkSxQ0jX4ZPNcl8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Drt3uTDSrSWgm0PXthwFHhWb2a3HdEpPCoZnyNqms3ldN34VI+Fbzf4clMVYreEBe vmZl1RLSP2HyHSI5eFbuPcXBlwWaV1FxLwIS+6tLIsk4OsuMeLiZ47ejYHNff+nKAu STiiVh3dJVUPTsnyz86mYN9LQLC1NNOzIkXe8Qnk= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240108091957epcas5p377edd7dd749865ee39043cb46804e89b~oVLV29tfH0530905309epcas5p3A; Mon, 8 Jan 2024 09:19:57 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.181]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4T7pRv2KY2z4x9Q9; Mon, 8 Jan 2024 09:19:55 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id A0.22.10009.B3EBB956; Mon, 8 Jan 2024 18:19:55 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20240108091954epcas5p39f9ca04b57adf01a7c964593b7be87d2~oVLTprznt0530905309epcas5p36; Mon, 8 Jan 2024 09:19:54 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240108091954epsmtrp22c13cd3c054fe334f3ca96fbdd4bbfb8~oVLTo9VEM1969219692epsmtrp2-; Mon, 8 Jan 2024 09:19:54 +0000 (GMT) X-AuditID: b6c32a4a-261fd70000002719-ad-659bbe3b11d0 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id 87.A0.18939.A3EBB956; Mon, 8 Jan 2024 18:19:54 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240108091953epsmtip24c355d58e1a701143ce2c650e39232b4~oVLSN3PR02117321173epsmtip2i; Mon, 8 Jan 2024 09:19:53 +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 v2 1/6] HID Samsung : Broaden device compatibility in samsung driver. Date: Mon, 8 Jan 2024 14:49:11 +0530 Message-Id: <20240108091917.1552013-2-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240108091917.1552013-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+LIzCtJLcpLzFFi42LZdlhTQ9d63+xUg7U7BSyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xrE1S1kKtglULP97nqWB8QRvFyMnh4SAicSX8+dZuhi5OIQEdjNK/J+z nhnC+cQosWLDc3aQKjDn0gNBmI5v814yQRTtZJQ4O2UJVHsnk8TstvnMIFVsAloSfUe+M4HY IgIREu8WbGIEsZkFrjNKPHgYCGILCxRJ7Hz9iw3EZhFQldj2axuYzStgK7F16iVmiG3yEvsP ngWzOQXsJLY92cgEUSMocXLmExaImfISzVtng50tIfCRXeJt91agQRxAjotE4yE+iDnCEq+O b2GHsKUkPr/bywZR380osfT2MXYIZwajRMvOq1Cb7SV+vp4ANohZQFNi/S59iGV8Er2/nzBB zOeV6GgTgqhWkXjatZsVZv73ExB3Sgh4SGyaMR8aihMZJe7dMp/AKD8LyQuzkLwwC2HZAkbm VYySqQXFuempxaYFRnmp5fCITc7P3cQITpZaXjsYHz74oHeIkYmD8RCjBAezkgiv5IzZqUK8 KYmVValF+fFFpTmpxYcYTYFhPJFZSjQ5H5iu80riDU0sDUzMzMxMLI3NDJXEeV+3zk0REkhP LEnNTk0tSC2C6WPi4JRqYIpsO11SseRloIT9Gq5Lyekvd1zQWc614OSeF3W3b1zUOnDi3/Qn 6zOkTfIiHghNzV4X32dxujH/85NP/QJvhUsFYlhj12QUVzNXeE602/i9YeWEun0LJtvukV9/ 2eKizu2zLoHPDj2J4jPt6D9jWZtVrr2eRWdHmoRNFsedSDWln2eW2yWdWBsgOUOA5xFvOJtq WQr/4c+zPgaLCRX4/o489dm5d2bVrzvb8/nvxV6v2cSyYfYKifVL5jXbGC4UXczUNvmlMk+u l9i12N7NS7Y/3/mr1lB+urCp5ER2Di+TI+4zNylZ2HAa7Z4ZwS0e5ZR08uHaxaaK3uFn6qfv fCO+YM3OLy8eT67I41/64IkSS3FGoqEWc1FxIgDvtNM+HwQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLLMWRmVeSWpSXmKPExsWy7bCSvK7VvtmpBgdPm1pcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGsTVLWQq2CVQs/3uepYHxBG8XIyeHhICJxLd5 L5m6GLk4hAS2M0pc29jACpGQklh1/R4jhC0ssfLfc3aIonYmiWdbGphBEmwCWhJ9R74zgdgi AhES0/6tZQQpYha4zyixdf9VNpCEsECBxOX5O8BsFgFViW2/toHZvAK2ElunXmKG2CAvsf/g WTCbU8BOYtuTjWBDhYBqXkz5xg5RLyhxcuYTFhCbGai+eets5gmMArOQpGYhSS1gZFrFKJpa UJybnptcYKhXnJhbXJqXrpecn7uJERziWkE7GJet/6t3iJGJg/EQowQHs5IIr+SM2alCvCmJ lVWpRfnxRaU5qcWHGKU5WJTEeZVzOlOEBNITS1KzU1MLUotgskwcnFINTNutQ+9kP7sq6ZeY Y7Us3aJ1C3ep9BSzbZ07WTXC0pq9DJ2KS1x+LLzMeKercEO6pp9w7Dlv9n2PLjRsMOBhO/C5 rNkv/hibTe8VgYZNh08wP45JK7V6dnwuw5ZT+8+ctt+m4Ta7eAnvvXyu/xvqLNOlfDcvKy/z W/i5RUqW8XpJ/O2WiXlKj7iv7RE8us6/q/mq1oY5+TfcZ/Cy2nM1ME4IMksSSpku1cd2ICir lGHSofU1j2Tan5rnai6dt+cX26Lcizeq7F3mzmtLOh+61I5ZbItV/6znXde+PT/x1z9k+eH3 GfMr3y8++17EQkuF38bkZveHpz/an2n2XN5XWvbDJGztc/GURz9sd0wzU2Ipzkg01GIuKk4E ADcM4nngAgAA X-CMS-MailID: 20240108091954epcas5p39f9ca04b57adf01a7c964593b7be87d2 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240108091954epcas5p39f9ca04b57adf01a7c964593b7be87d2 References: <20240108091917.1552013-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..885657531607 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(h= dev)) 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 Thu Dec 18 12:35:43 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 8CB7311707 for ; Mon, 8 Jan 2024 09:20:04 +0000 (UTC) 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="mWxyJa3K" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20240108092002epoutp0455b4e7167e0cea4e1175b766644b91a2~oVLakPAKg0595605956epoutp04z for ; Mon, 8 Jan 2024 09:20:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20240108092002epoutp0455b4e7167e0cea4e1175b766644b91a2~oVLakPAKg0595605956epoutp04z DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1704705602; bh=CpiTAUIjCffO8FsyEJ+Hs/0pW8pQa7U6hHyxRCcPq3Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mWxyJa3KneWp1vNqbvmW5ndnuIRCV8fiXqUeVdEVpXHQCwXO9FOZIDKUITWlLRxdd PrK7lKthbI+4Vx/R8xhD+/rdm1eBAWw8Ex0k8flxtihUFiklY5RKJZwlvTBINYFzJP S8LrOR6jFcXNd39pcB9khCvcUz/8G/TXdDpG0Bt4= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240108092002epcas5p36ee1c90d1bb977c054ad1d3b71f2abc3~oVLaN3d2T0530905309epcas5p3K; Mon, 8 Jan 2024 09:20:02 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.177]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4T7pS02932z4x9Q1; Mon, 8 Jan 2024 09:20:00 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 3B.3B.09634.04EBB956; Mon, 8 Jan 2024 18:20:00 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240108091959epcas5p2559b779424e2fb7c7e268d1b24612b4f~oVLX-fuBT0997409974epcas5p26; Mon, 8 Jan 2024 09:19:59 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240108091959epsmtrp12a170f12ee8ff622724e51edbe959e71~oVLX_BxSH1893518935epsmtrp1C; Mon, 8 Jan 2024 09:19:59 +0000 (GMT) X-AuditID: b6c32a49-159fd700000025a2-d6-659bbe40e2e5 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id CE.A0.18939.F3EBB956; Mon, 8 Jan 2024 18:19:59 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240108091958epsmtip2983f17ab6845702dcc42be0caef7babb~oVLWi8qvW2117321173epsmtip2r; Mon, 8 Jan 2024 09:19:57 +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 v2 2/6] HID: Samsung : Fix the checkpatch complain. Date: Mon, 8 Jan 2024 14:49:12 +0530 Message-Id: <20240108091917.1552013-3-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240108091917.1552013-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+LIzCtJLcpLzFFi42LZdlhTU9dh3+xUg+WtfBbXp2xmtbi9wNNi 65K5rBa3jrcyWrx8sIHdYvPkRywWNz99Y7W4vGsOm0X77GeMFo9WbGJy4PLYtKqTzeP9vqts Hn1bVjF6fN4kF8ASlW2TkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pmYKhraGlhrqSQl5ibaqvk 4hOg65aZA3SPkkJZYk4pUCggsbhYSd/Opii/tCRVISO/uMRWKbUgJafApECvODG3uDQvXS8v tcTK0MDAyBSoMCE749XVG2wFZ1QrmrevZ2lg3CTfxcjJISFgIjHxwWG2LkYuDiGB3YwSt89f Y4VwPjFKTLrXwwbndM6ZzwjTMvlwJ1RiJ6PExnVTmSCcTiaJfxsnMoNUsQloSfQd+c4EYosI REi8W7AJrJtZ4DqjxIOHgSC2sECCxN23q4D2cXCwCKhKLJwTAxLmFbCV+NvwhwlimbzE/oNn wUZyCthJbHuykQmiRlDi5MwnLBAj5SWat85mhqj/yS6x+Y44yEgJAReJ7r+VEGFhiVfHt7BD 2FISL/vb2EFOlhDoZpRYevsYlDODUaJl51WoQfYSP19PYAMZxCygKbF+lz7ELj6J3t9PmCDm 80p0tAlBVKtIPO3azQoz//uJjVDne0j8/7GCERI8ExklFi58wzqBUX4WkhdmIXlhFsK2BYzM qxglUwuKc9NTi00LDPNSy+ERm5yfu4kRnCy1PHcw3n3wQe8QIxMH4yFGCQ5mJRFeyRmzU4V4 UxIrq1KL8uOLSnNSiw8xmgKDeCKzlGhyPjBd55XEG5pYGpiYmZmZWBqbGSqJ875unZsiJJCe WJKanZpakFoE08fEwSnVwDQxh12r0qhXvEyAU/BrnPaKtNntPSm6fqHtBZuery4y/rpwVVzt 5WJNK81eSx9h7gT9JqWOfb8ksuYWHtnk90X/EV+p0cXPH3fYGKVsPOJsvbxsaURRupaKHMuP iO23w1el2q39V79TMvdBkYG02PpfnlIOz4rveT4vYdx57OkZWcuIwOsx8WWO1d08oSvWOu0U rip5OauWXZrl9OyjjzUX7pyxSq4w3uCTSWyKjeTGGL+n/XZfWefkS2/s1DwTrhi8Y7WarDXr pw0TDmre6r0+OZl/yumuZE9+D7al51Tr5z7XmNOVsOvZlxLGE9zvEjdFL7jCbXhl1Q/FbfvM Je0eO6+vrDLczNWxaY6tEktxRqKhFnNRcSIAQYeCix8EAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrNLMWRmVeSWpSXmKPExsWy7bCSvK79vtmpBlOOKlhcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGq6s32ArOqFY0b1/P0sC4Sb6LkZNDQsBEYvLh TrYuRi4OIYHtjBJtU/qYIRJSEquu32OEsIUlVv57zg5iCwm0M0n8+lgNYrMJaEn0HfnOBGKL CERITPu3lhFkELPAfUaJrfuvsoEkhAXiJG6+mczaxcjBwSKgKrFwTgxImFfAVuJvwx8miPny EvsPngXbyylgJ7HtyUYmiF22Ei+mfGOHqBeUODnzCQuIzQxU37x1NvMERoFZSFKzkKQWMDKt YhRNLSjOTc9NLjDUK07MLS7NS9dLzs/dxAgOb62gHYzL1v/VO8TIxMF4iFGCg1lJhFdyxuxU Id6UxMqq1KL8+KLSnNTiQ4zSHCxK4rzKOZ0pQgLpiSWp2ampBalFMFkmDk6pBqYZl1/a3Z28 m1Ve/BL3X4/fj6r3fwjOcyxYF6W3JZex+75WV+Isy+DFu//5etp8d97JJGzH6xuebjrjzNRj W+/dOZuUf09I/B1nyZE787aJ7qqVfGGmVa9yYl51pybj83N9L+VXTEwqPp0o90XKMOI3n4uW y+49ZrlC31KS38vvnPjt8iW5fua5Z1wWVD4wv680K6nnfNfi3zos666n7uae9N+Yx37ug+bT ewqs8lx8Ujdpecko+TF/nnHf/nHK26U/ppTOdGJhS/hb7bpP9Z/b5pnmL5pyV95eynAmhcEp 9dqj33O//uvqcPhgZ3NHmOlljo7lg1O3Fq9+GC4u0VX7a0PPjqNhTGrHI1xecN1VYinOSDTU Yi4qTgQAMs6Nyt4CAAA= X-CMS-MailID: 20240108091959epcas5p2559b779424e2fb7c7e268d1b24612b4f X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240108091959epcas5p2559b779424e2fb7c7e268d1b24612b4f References: <20240108091917.1552013-1-sandeep.cs@samsung.com> Warning 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 | 61 +++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 21 deletions(-) diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index 885657531607..33cc92337394 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -67,20 +67,17 @@ static __u8 *samsung_irda_report_fixup(struct hid_devic= e *hdev, __u8 *rdesc, 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 = && + } 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) { 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 = && + } 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) { 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 = && + } 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) { samsung_irda_dev_trace(hdev, 171); rdesc[161] =3D 0x1; @@ -99,7 +96,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 +104,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 +147,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(h= dev)) + 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 +158,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 +177,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 Thu Dec 18 12:35:43 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 D7A5813FFF for ; Mon, 8 Jan 2024 09:20:08 +0000 (UTC) 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="nbXzWqCD" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20240108092006epoutp01ec864e0aa5327855be0fd5d666ef751d~oVLe04oN51907419074epoutp01c for ; Mon, 8 Jan 2024 09:20:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20240108092006epoutp01ec864e0aa5327855be0fd5d666ef751d~oVLe04oN51907419074epoutp01c DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1704705606; bh=Aeh63ARlk/fKxiss469QZfuzwt6Eklhg+CnypWQMAXg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nbXzWqCDvklBgBF9EjiErRY704MkQ/N9+AtzYwNjs8IsYl61U6G5BC7rDAveRwBTm wIBiRBke0OFKiYbSBsJjcqEt7IzwNbd6cNo5/HJUxoJuj/Uo+aCVc3O++XymT4L7mQ Ee2KQ7d3mWVdVCceWxfUOvX3JpL8X9MPmBhpaU94= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20240108092006epcas5p1ce12f914cf3597107ac22f3006e1d028~oVLejjQ9m1035210352epcas5p1D; Mon, 8 Jan 2024 09:20:06 +0000 (GMT) Received: from epsmges5p3new.samsung.com (unknown [182.195.38.175]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4T7pS45Rlvz4x9Pw; Mon, 8 Jan 2024 09:20:04 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id 28.88.09672.44EBB956; Mon, 8 Jan 2024 18:20:04 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20240108092004epcas5p1c7069a6ede85066817d8ce5a79da75ad~oVLcSB51t1035210352epcas5p15; Mon, 8 Jan 2024 09:20:04 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240108092004epsmtrp1e4610ae69a23b1d53b37b43a3cd58bc4~oVLcROMuN1918419184epsmtrp1O; Mon, 8 Jan 2024 09:20:04 +0000 (GMT) X-AuditID: b6c32a4b-39fff700000025c8-c0-659bbe440f66 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 39.57.08755.44EBB956; Mon, 8 Jan 2024 18:20:04 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240108092002epsmtip2713df726529de8070f7202c46fada4f7~oVLazhPr42072620726epsmtip2D; Mon, 8 Jan 2024 09:20:02 +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 v2 3/6] HID: Samsung : Add Samsung wireless keyboard support. Date: Mon, 8 Jan 2024 14:49:13 +0530 Message-Id: <20240108091917.1552013-4-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240108091917.1552013-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+LIzCtJLcpLzFFi42LZdlhTXddl3+xUg/V3VCyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xrZD01kLfqlVrL16jamBcY5CFyMnh4SAicSv+UuZuxi5OIQEdjNKfDgy iwUkISTwiVFiW1c2hP2NUWL3LnmYhuOv/jJCNOxllPi47DgbhNPJJHFhCcgoTg42AS2JviPf mUBsEYEIiXcLNjGC2MwC1xklHjwM7GLk4BAWyJJY3p0BEmYRUJVo2/UIrJxXwFbixafd7BDL 5CX2HzwLNpJTwE5i25ONUDWCEidnPmGBGCkv0bx1NtgHEgJf2SVe9E1khWh2kbh08RcbhC0s 8er4FqihUhIv+9vYIRq6GSWW3j4G5cxglGjZeZUZospe4ufrCWwglzILaEqs36UPsY1Povf3 EyaQsIQAr0RHmxBEtYrE067drDDzv5+AOFRCwEOirX8tOySAJjJKHJvymGkCo/wsJE/MQvLE LIRtCxiZVzFKphYU56anFpsWGOellsMjNjk/dxMjOFlqee9gfPTgg94hRiYOxkOMEhzMSiK8 kjNmpwrxpiRWVqUW5ccXleakFh9iNAWG8kRmKdHkfGC6ziuJNzSxNDAxMzMzsTQ2M1QS533d OjdFSCA9sSQ1OzW1ILUIpo+Jg1OqgelMaIWh/ZKYayqyF5VT5RtfTfi1JvrzkbVzHMscejKl dniwPs5337DvUXpb4xfuzWW79rR7y1zhXxpkt3+dO9fmmgnNKu03bOJ/Hv+e77ToM/OmR/xX movaPrX3HGCWVUo+yxGvu5mr+twGyV3TtFyulL8oP6ozRycr4a1IhzVrYmfpRYMTyn6zt2ae VHv9dvs/16S3rQ6zzyZPj173y+rD14OzhDa1lSwRaMoz/ie6b/Kbyi8P72i/jjvjuStII90s bYfyjv6QJRUli2Zrcocq6na4ry554z7H3sfpZFVB/Y6+GYY9FaGzpX3T+pf6bpyrqtw3wVRm hpnLm+dtSWHVDAzemVG/XK8IcqV5K7EUZyQaajEXFScCAK0VwaYfBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsWy7bCSvK7LvtmpBhcecVpcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGtkPTWQt+qVWsvXqNqYFxjkIXIyeHhICJxPFX fxm7GLk4hAR2M0ps2XyTCSIhJbHq+j1GCFtYYuW/5+wQRe1MEgsWNLKAJNgEtCT6jnwHaxAR iJCY9m8t2CRmgfuMElv3X2UDSQgLZEg0tr5jBbFZBFQl2nY9AmvgFbCVePFpNzvEBnmJ/QfP MoPYnAJ2EtuebASrEQKpmfKNHaJeUOLkzCdgi5mB6pu3zmaewCgwC0lqFpLUAkamVYySqQXF uem5xYYFhnmp5XrFibnFpXnpesn5uZsYwaGupbmDcfuqD3qHGJk4GA8xSnAwK4nwSs6YnSrE m5JYWZValB9fVJqTWnyIUZqDRUmcV/xFb4qQQHpiSWp2ampBahFMlomDU6qBKaXl+LyrpVKt Hz+pyXvILzL8znyiZ6LDMfGEqsvzs/al5UoyiLwSm+oofparwjLr0D1Vj8vbcy8UXskL0pvM otWTwOSjM6EgjXHPQkm5vdx/atILr7I3LudU4PPbdvdx7nZ9CaHwJcnf7lrvnljW3alxh0WX a8L1kG1c1xdyfbYInXSf/cp63ch+X5UVH77sNDbbl26jXeiyI7U/+ee8pxwXn37ZVXk9k6Fx 6qXJ5if0Lc/PXVcvY5F1kvVWuldctMAac32GXgulGYbOEecqT29P/zf31br7p2frdlVm8bUt vZ7l5te7v+vowr9GpbqnWbMvT38haJH86afLdM87TxmTL5/Y+z2PQ5vve+4WJZbijERDLeai 4kQAaxF6yeQCAAA= X-CMS-MailID: 20240108092004epcas5p1c7069a6ede85066817d8ce5a79da75ad X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240108092004epcas5p1c7069a6ede85066817d8ce5a79da75ad References: <20240108091917.1552013-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 72046039d1be..2f526dc8983a 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1139,8 +1139,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 33cc92337394..611acd7ffd6d 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -144,6 +144,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) { @@ -161,6 +265,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; } @@ -203,6 +310,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 Thu Dec 18 12:35:43 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 E010814A8C for ; Mon, 8 Jan 2024 09:20:13 +0000 (UTC) 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="ZuFzHN7l" Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20240108092012epoutp01bfdc41c19f88b18304ef46ffb724e5e5~oVLjjYxeE1907819078epoutp01g for ; Mon, 8 Jan 2024 09:20:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20240108092012epoutp01bfdc41c19f88b18304ef46ffb724e5e5~oVLjjYxeE1907819078epoutp01g DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1704705612; bh=JER64z6YgXsvP6WOJLry40zGqwaQo1yWzkXmbxq2ByQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZuFzHN7liIbCSPso378ei+JBi93dMW0EFqKrJen0mrAOgXUdVDA8Rz6MipSd/KklR ICB1ng7pzPlSm3VEvGvxVF4zJcuJ4Gyo+Mx6ZgQBE1xvTzJbysZGXA9UAnCKqss3jl ucdsqsb780l4YA8em2IF7wY0TXdqEDX+Y/T0fnnQ= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20240108092011epcas5p11a77fac6e70603822beeaa8f8eef49d3~oVLjRNr3q2667326673epcas5p1r; Mon, 8 Jan 2024 09:20:11 +0000 (GMT) Received: from epsmges5p3new.samsung.com (unknown [182.195.38.179]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4T7pS96DPkz4x9Py; Mon, 8 Jan 2024 09:20:09 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id EA.88.09672.94EBB956; Mon, 8 Jan 2024 18:20:09 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20240108092009epcas5p15c5be87fa427a5c4426c55c86c5ce3bc~oVLhFrozI2667326673epcas5p1Y; Mon, 8 Jan 2024 09:20:09 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240108092009epsmtrp2ebdbb4c3b337cef34748291db26d2d27~oVLhE_mOG2003120031epsmtrp2C; Mon, 8 Jan 2024 09:20:09 +0000 (GMT) X-AuditID: b6c32a4b-60bfd700000025c8-cd-659bbe4968e3 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 7F.57.08755.94EBB956; Mon, 8 Jan 2024 18:20:09 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240108092007epsmtip254afeccaaa7d464d392151075f9d7472~oVLfbglWK2117021170epsmtip2d; Mon, 8 Jan 2024 09:20:07 +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 v2 4/6] HID: Samsung : Add Samsung wireless gamepad support. Date: Mon, 8 Jan 2024 14:49:14 +0530 Message-Id: <20240108091917.1552013-5-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240108091917.1552013-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+LIzCtJLcpLzFFi42LZdlhTU9dz3+xUg1u79C2uT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xpyrc1kLTihXLN79hLWB8bhsFyMnh4SAicT5D19Zuxi5OIQEdjNKbFnT zgjhfGKUaHyxnB3C+cYo0b+kmx2mZevT21Atexkl5h79wQqSEBLoZJJ48UwAxGYT0JLoO/Kd CcQWEYiQeLdgEyOIzSxwnVHiwcNAEFtYIFNi476dYL0sAqoSTz6sZAOxeQVsJfZch4hLCMhL 7D94lhnE5hSwk9j2ZCMTRI2gxMmZT1ggZspLNG+dzQxykITAT3aJSXd2QV3qIrF5yWFGCFtY 4tXxLVBxKYnP7/ayQTR0M0osvX2MHcKZwSjRsvMqM0SVvcTP1xOAqjiAVmhKrN+lD7GNT6L3 9xMmkLCEAK9ER5sQRLWKxNOu3aww87+fgDhUQsBDYvKFdeyQAJrIKLH/bcIERvlZSH6YheSH WQjLFjAyr2KUTC0ozk1PLTYtMM5LLYfHbHJ+7iZGcLrU8t7B+OjBB71DjEwcjIcYJTiYlUR4 JWfMThXiTUmsrEotyo8vKs1JLT7EaAoM5InMUqLJ+cCEnVcSb2hiaWBiZmZmYmlsZqgkzvu6 dW6KkEB6YklqdmpqQWoRTB8TB6dUA5POL8Y3K/Oy9bv+JM4KPcb6RenJt7JpG459E19ssezi ZQ6l8rglTUKLvBxfNETfq3zQcWYa38UXjsumH3rR2zqhjiP+3V/to4FTO9MmKN3/o/Pk6fI0 hhWnTk0pdtjh2HquQ54juXV7cL/Djw0y3fOFLtRoFNouMuE/6HrnggCrRram+XbX31P7F6jm u2yb9Npq6/evnSVbhPfHesv9zhboyhd2mmw5ufnEC/bT+w21K2qfHFcV/VPJIbVUIff+328v f9TLfGXZ5se8JUcxNKk/e/n0mDk6IUZ6Ho9iV//J22a/onmy9l3mrzMjsq+E3pvDaat+rFdk fXd+kO/iBc5B34tYHx0Lnet/Piiw6ZgSS3FGoqEWc1FxIgA9JldtIAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsWy7bCSvK7nvtmpBm+28Vpcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGnKtzWQtOKFcs3v2EtYHxuGwXIyeHhICJxNan t1m7GLk4hAR2M0q03T/LApGQklh1/R4jhC0ssfLfc3aIonYmiUkv3rCCJNgEtCT6jnxnArFF BCIkpv1bywhSxCxwn1Fi6/6rbCAJYYF0iSNb14BNYhFQlXjyYSVYnFfAVmLP9Z2sEBvkJfYf PMsMYnMK2Else7IRbKgQUM2LKd/YIeoFJU7OfAJ2HTNQffPW2cwTGAVmIUnNQpJawMi0ilEy taA4Nz232LDAMC+1XK84Mbe4NC9dLzk/dxMjONS1NHcwbl/1Qe8QIxMH4yFGCQ5mJRFeyRmz U4V4UxIrq1KL8uOLSnNSiw8xSnOwKInzir/oTRESSE8sSc1OTS1ILYLJMnFwSjUwHQ99/6XW e8UkO1Ov2A9Xf+nI+imK7UiavGirh95JIbse9pN3djXpbmGq33JY9+2xbvlnLxuyNQ8qN5yf Zs7V1ea298uj4p6ARJ9k/Tzua5NcHhWu0BBn9JpTozDxx7rDl0rNHyjnl733fODIesmk+TW7 ZCHXwk756Rsu6aaZWi1QOssu9NBz5tdJf8Su/WX58f605Xojbn6RmSFfema/9/nUZLpuso/e ow9CZ0o3zlS9nrLX5ppAj47ctiNSO3VvNNY+3hfS9Hn//e+vGsMEXR5x6qieuLfYSGjHQaFM rbItE5u7rU4bKyRP+NRsF7P3+ruUyTxiNzo2n31TsOyMLuuTwtqOf7ZRlXcf7ZmUoMRSnJFo qMVcVJwIANp7o9LkAgAA X-CMS-MailID: 20240108092009epcas5p15c5be87fa427a5c4426c55c86c5ce3bc X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240108092009epcas5p15c5be87fa427a5c4426c55c86c5ce3bc References: <20240108091917.1552013-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 2f526dc8983a..2851dc25f949 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1143,6 +1143,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 611acd7ffd6d..6b08acd3c4fd 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -248,6 +248,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) { @@ -268,6 +359,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; } @@ -311,6 +405,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 Thu Dec 18 12:35:43 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 39A602209B for ; Mon, 8 Jan 2024 09:20:22 +0000 (UTC) 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="fQ6/yQxV" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20240108092020epoutp02867bad8cdc74f91af9fbbb700ba567e8~oVLrNNvNa3251132511epoutp02a for ; Mon, 8 Jan 2024 09:20:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20240108092020epoutp02867bad8cdc74f91af9fbbb700ba567e8~oVLrNNvNa3251132511epoutp02a DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1704705620; bh=n5G3LFStaWOaj8LKX+Yj5qv1FL8fnQNC3jRblVEBwZM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fQ6/yQxVUBOs7TSlPU5KulIs4PrTdAlV19rLtHh6yuI7R+IHp8TTOmoHdU5yBSxsK l6JOesEqPypJLE/JqvWBwFi0+36Yu096M2UOSKWjStPnklwZjktQTcaZjogl7d6YuV yXgG2ftjV/O6raf8z+VM6hv0JRDQ/kMm/R8iWvmY= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240108092019epcas5p32bb7cedfa6eae9ccfc0871ae5fcefbc7~oVLq19bw60530905309epcas5p3B; Mon, 8 Jan 2024 09:20:19 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.181]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4T7pSL0fD6z4x9Px; Mon, 8 Jan 2024 09:20:18 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 26.32.10009.15EBB956; Mon, 8 Jan 2024 18:20:17 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20240108092017epcas5p24c1c263149a0a8bf3204c86925e3cfd9~oVLoxkwlr0637406374epcas5p2Z; Mon, 8 Jan 2024 09:20:17 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20240108092017epsmtrp1ef99b2c3aa419f9c256adedbe3d85f9c~oVLow1Sqz1924619246epsmtrp1T; Mon, 8 Jan 2024 09:20:17 +0000 (GMT) X-AuditID: b6c32a4a-261fd70000002719-ef-659bbe510e22 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id 98.D0.18939.15EBB956; Mon, 8 Jan 2024 18:20:17 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240108092015epsmtip298468bd97585da0b265c6f4d1e4d2783~oVLnOrt3l2167221672epsmtip2B; Mon, 8 Jan 2024 09:20:15 +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 v2 5/6] HID: Samsung : Add Samsung wireless action mouse support. Date: Mon, 8 Jan 2024 14:49:15 +0530 Message-Id: <20240108091917.1552013-6-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240108091917.1552013-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+LIzCtJLcpLzFFi42LZdlhTQzdw3+xUgzOnbCyuT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xv4LK1kKVolXvJzo0MDYKNLFyMkhIWAi8f/ONeYuRi4OIYHdjBLzl59n g3A+MUq8atvECOdsXfCCFablzNxGqMRORokjc19CtXQySTy6+Bysik1AS6LvyHcmEFtEIELi 3QKQUZwczALXGSUePAwEsYUF8iQuL+hnA7FZBFQltl1+wwJi8wrYSrRtbWeB2CYvsf/gWWYQ m1PATmLbk41MEDWCEidnPmGBmCkv0bx1NjNE/Vt2iaOv9LoYOYBsF4kFW5ggwsISr45vYYew pSRe9rexg9wsIdDNKLH09jEoZwajRMvOq1CD7CV+vp7ABjKIWUBTYv0ufYhdfBK9v58wQczn lehoE4KoVpF42rWbFWb+9xMbofZ6SHzfdJwdEj4TGSV2rnrGPoFRfhaSF2YheWEWwrYFjMyr GCVTC4pz01OLTQuM8lLL4RGbnJ+7iRGcLLW8djA+fPBB7xAjEwfjIUYJDmYlEV7JGbNThXhT EiurUovy44tKc1KLDzGaAsN4IrOUaHI+MF3nlcQbmlgamJiZmZlYGpsZKonzvm6dmyIkkJ5Y kpqdmlqQWgTTx8TBKdXAJPJ5T6/Ci4+v03M6fls8THyaEnUqUq7cvYoz+5a9v8zlG2FmAc5H p1k+m90nsqZ8mudlc+myC9+THrAu5etcGD/vZV3N6qvdWVPtBBdq7C4+EiXGcXBz9t/o41MX aD+ZzMrG9stp7rG1Gqs1WLUmCW7nFmy5F3m4eNmZYhXzHVkHo0SDz6d33zKcc+D8rPQ1vw4e qpEI0urnPfg0qEvX6kPulobnlbu/SWvPz67apdp6Q90zoWbPwztPnxYvuss/4/XNJ29niBRd 1vBau/fwzYd9Grovk7n3Jk46eaq5bu4J8TYRHke1S+p1AQe/fXS/+kBV4cS53LjZgnOFou5f 0fsgHnpGq5+N8Z3Vm17ZVUosxRmJhlrMRcWJAAoJOXkfBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDLMWRmVeSWpSXmKPExsWy7bCSvG7gvtmpBpuXKVlcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfG/gsrWQpWiVe8nOjQwNgo0sXIySEhYCJxZm4j YxcjF4eQwHZGiW9rr7BAJKQkVl2/xwhhC0us/PecHaKonUni6KnTYAk2AS2JviPfmUBsEYEI iWn/1oJNYha4zyixdf9VNpCEsECOxLUJ15lBbBYBVYltl9+AbeAVsJVo29oOtU1eYv/Bs2A1 nAJ2EtuebAQbKgRU82LKN3aIekGJkzOfgNUzA9U3b53NPIFRYBaS1CwkqQWMTKsYRVMLinPT c5MLDPWKE3OLS/PS9ZLzczcxggNcK2gH47L1f/UOMTJxMB5ilOBgVhLhlZwxO1WINyWxsiq1 KD++qDQntfgQozQHi5I4r3JOZ4qQQHpiSWp2ampBahFMlomDU6qByZzt/WEn355YWYZzcYc3 vTXskfm/VDO/6nifWLJP3uGvO59dWHhWpO3l+qWrhD+VHVk9T5KF43/ovY2zE763W06z0+yb 4166JHTx57kNv9ZuZL12/MU9TbYK3vPt7C6Rk6detVmoVchV9FONjTl7UceGqsevTyrf2ZwR dPWT6CldwSStpJDaZTZLVJ5xSJsX8P8/fW+KF7PfvQVr1B4pVHLwcX+8wiWn9XlilGDh1PTq ZTw3TRY9V87Jl1rRZsD74V3WwQPP3sTrrRN/mBlQvXqxo1rCzBsRAWc2Goeu9z9xKUhtXc+f pqv2d9MuSBbGc9lWGOzc/bNanePtuger/OSdjigLfbbeF2ef3FOWr8RSnJFoqMVcVJwIAPa6 amTfAgAA X-CMS-MailID: 20240108092017epcas5p24c1c263149a0a8bf3204c86925e3cfd9 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240108092017epcas5p24c1c263149a0a8bf3204c86925e3cfd9 References: <20240108091917.1552013-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 2851dc25f949..b1208d04712c 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1144,6 +1144,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 6b08acd3c4fd..36ab9540e064 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -339,6 +339,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) { @@ -362,6 +385,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; } @@ -406,6 +432,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 Thu Dec 18 12:35:43 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 0845429420 for ; Mon, 8 Jan 2024 09:20:29 +0000 (UTC) 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="jM4KlA8I" Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20240108092028epoutp0445fd0d2f5c5f985133a333a5843a56a8~oVLykesy_0770507705epoutp04e for ; Mon, 8 Jan 2024 09:20:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20240108092028epoutp0445fd0d2f5c5f985133a333a5843a56a8~oVLykesy_0770507705epoutp04e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1704705628; bh=f7oEAqGc3D1UQYparyVNa8WFZxoDPCcV8mgY0hQuHNs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jM4KlA8IiubKgWM1FRGiyC/nW5vo7zmxWonzpz+oYpfDWprK2zNZ9awrAXsw4Qn6F Bv5sNSsMeACb31ePrO2/rFxtbZ13BOyDp/92cOeza+2MiWtZWL+vQYSGeZ98/7pq4i GSME2/PERFHkp2S0NvTid7AOJSaOPKtnqCNbCuQ0= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20240108092027epcas5p392d31e572aa553e7cf907e920885c561~oVLyHPbMs0528705287epcas5p3K; Mon, 8 Jan 2024 09:20:27 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.181]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4T7pST6FkVz4x9Q4; Mon, 8 Jan 2024 09:20:25 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 6B.32.10009.95EBB956; Mon, 8 Jan 2024 18:20:25 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20240108092025epcas5p39e2ecb3b12b4fba9e41f0694f430ec1d~oVLwDr3Gl0532205322epcas5p3s; Mon, 8 Jan 2024 09:20:25 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20240108092025epsmtrp2a8eab9146eecf2ff52dab07c38705603~oVLwCWUDP2017920179epsmtrp21; Mon, 8 Jan 2024 09:20:25 +0000 (GMT) X-AuditID: b6c32a4a-ff1ff70000002719-0a-659bbe599c82 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id B4.E0.18939.95EBB956; Mon, 8 Jan 2024 18:20:25 +0900 (KST) Received: from ws2030077324.sa.corp.samsungelectronics.net (unknown [107.99.237.91]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20240108092023epsmtip24d4cae43eaa0bc47c78f6ad265e60e3c~oVLufuCik2133021330epsmtip24; Mon, 8 Jan 2024 09:20:23 +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 v2 6/6] HID: Samsung : Add Samsung wireless bookcover and universal keyboard support. Date: Mon, 8 Jan 2024 14:49:16 +0530 Message-Id: <20240108091917.1552013-7-sandeep.cs@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240108091917.1552013-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+LIzCtJLcpLzFFi42LZdlhTUzdy3+xUg2fP9C2uT9nManF7gafF 1iVzWS1uHW9ltHj5YAO7xebJj1gsbn76xmpxedccNov22c8YLR6t2MTkwOWxaVUnm8f7fVfZ PPq2rGL0+LxJLoAlKtsmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkhLzE31VbJ xSdA1y0zB+geJYWyxJxSoFBAYnGxkr6dTVF+aUmqQkZ+cYmtUmpBSk6BSYFecWJucWleul5e aomVoYGBkSlQYUJ2xr9Nl5gKNhtWTGqcytjA2KXZxcjJISFgIjFj6R7GLkYuDiGB3YwSU3bt YoZwPjFKdL2cxQbntM64zgjT8mz/XFaIxE5GiWP7NzJBOJ1MErOfLWEHqWIT0JLoO/KdCcQW EYiQeLdgE1g3s8B1RokHDwNBGoQFmhglbp5eCVbEIqAq0fb0P9A+Dg5eAVuJr/9yILbJS+w/ eJYZxOYUsJPY9mQjWDmvgKDEyZlPWCBmyks0b50NdreEwE92iY/3/7FDNLtIPP51kAXCFpZ4 dXwLVFxK4vO7vWwQDd2MEktvH2OHcGYwSrTsvMoMUWUv8fP1BLCLmAU0Jdbv0ofYxifR+/sJ E0hYQoBXoqNNCKJaReJp125WmPnfT0AcKiHgIfFk7QIWSAhNZJT4cfYp+wRG+VlInpiF5IlZ CNsWMDKvYpRMLSjOTU8tNi0wyksth8dtcn7uJkZwytTy2sH48MEHvUOMTByMhxglOJiVRHgl Z8xOFeJNSaysSi3Kjy8qzUktPsRoCgzkicxSosn5wKSdVxJvaGJpYGJmZmZiaWxmqCTO+7p1 boqQQHpiSWp2ampBahFMHxMHp1QDU3XvDUNVT5te64CzWtFOV87kVMy7o6ybfEpn8So3mzXH q5Z98nLcxuLyzawq8Wfoih4JOfdPPhvlfJoczu+T53XITAq6bbdx6mbR0/9mGd3YefvR4rIJ z9gdy2wZ8zYyL1vpeiLoxqvM8B8rBB98re9fPl3kL981aZ2kXc9+WfQL9nM232r5e+yVxKfj C8yLWF2P/FedtOxo4fTgip3bMoLtGvjUhX7eZHY7+27p8UUVl+/tXuPmlFZznffJ9B8sejla nA7zjq9/sGnNvyO/Qtn33fmxtMCHf7m25SvfEwY6v86eTrtQ0MxwZNc3/TdrTHWq2BwvzXl9 8enyZodF23nL3v40j3m+z0a0sUdj0hQlluKMREMt5qLiRACV5EdkIgQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDLMWRmVeSWpSXmKPExsWy7bCSvG7kvtmpBi+2illcn7KZ1eL2Ak+L rUvmslrcOt7KaPHywQZ2i82TH7FY3Pz0jdXi8q45bBbts58xWjxasYnJgctj06pONo/3+66y efRtWcXo8XmTXABLFJdNSmpOZllqkb5dAlfGv02XmAo2G1ZMapzK2MDYpdnFyMkhIWAi8Wz/ XNYuRi4OIYHtjBL/frcyQiSkJFZdvwdlC0us/PecHaKonUni1J/3LCAJNgEtib4j35lAbBGB CIlp/9YyghQxC9xnlNi6/yobSEJYoIFRYvYcKRCbRUBVou3pf6A4BwevgK3E1385EAvkJfYf PMsMYnMK2Else7IRbKYQUMmLKd/YQWxeAUGJkzOfgO1lBqpv3jqbeQKjwCwkqVlIUgsYmVYx iqYWFOem5yYXGOoVJ+YWl+al6yXn525iBAe4VtAOxmXr/+odYmTiYDzEKMHBrCTCKzljdqoQ b0piZVVqUX58UWlOavEhRmkOFiVxXuWczhQhgfTEktTs1NSC1CKYLBMHp1QDU2fv7Q1NNy+3 avBJ/Eo7t8n7wV8JQ9G8Ft/F8hs/OjBs+cv/7nvppt3ijwqmT9cKahVYc7H9TbpIyQblV1oO U6wXLk258bligvL592XTg23mmFyVOXq+NyZDVfmAeG5H96odrw+G/Pr04EqAuoD6n+sxH7fP mxZ3cXG/nPX5us0HkmxFd+aYcYcuTjm0bYMdwzmPkMcVOqUHMnS2H/lyzYVR48W2rPMFr/L1 lnGHzn4nZmD1T6PjUI/0yoC7sSmPmw7JfZq6nsm3vHaFZFCD6tf5IXer6tLOnYyQKXgRtshn Rffe/2vCllx7xWDtMHHvPnf/R0VbG+/sabqmcWcuc5TxtZrulLrIqKk6918LsyixFGckGmox FxUnAgBvZ0zF3wIAAA== X-CMS-MailID: 20240108092025epcas5p39e2ecb3b12b4fba9e41f0694f430ec1d X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20240108092025epcas5p39e2ecb3b12b4fba9e41f0694f430ec1d References: <20240108091917.1552013-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 --- 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 b1208d04712c..c03137ada8f5 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1145,6 +1145,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 36ab9540e064..ba1c71f25d78 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c @@ -362,6 +362,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) { @@ -388,6 +522,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; } @@ -433,6 +573,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