From patchwork Sun Jul 16 18:23:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Mavroudis Chatzilazaridis X-Patchwork-Id: 703866 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75D88EB64DD for ; Sun, 16 Jul 2023 18:24:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229450AbjGPSYC (ORCPT ); Sun, 16 Jul 2023 14:24:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229809AbjGPSYB (ORCPT ); Sun, 16 Jul 2023 14:24:01 -0400 Received: from mail-0201.mail-europe.com (mail-0201.mail-europe.com [51.77.79.158]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BD791B0 for ; Sun, 16 Jul 2023 11:24:00 -0700 (PDT) Date: Sun, 16 Jul 2023 18:23:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1689531836; x=1689791036; bh=2/H7GUqQOZURBw6r0JeR2r323PWubTkyeLECF5ZS6VE=; h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=mxjTqOTWdyhd6MEWT/pyyLxiu38o/0/bAVyaT1ZeXACVJC4rvTHJN5niF+1pODUfh ohi0YYR03CMjy018QjlmTsWoGjxbHLvLyL0tE1gMQZP6kLzAtHeYsx2m+MoWo0mkyz dGeTlramjzfmXy/j5JMbjr4CinKB0v1WP+u/53LK5J3H7SAIoweTpAUKofTKEVNiaD mHItOzMrIEpymTEiqekQFCVW9mhugdv2+Gpl4REC8zQbee0vHApeyT5E82gki9QdPt mmiCgCwK+UoYha9pnCDp8EDdQa100Bnq4rPJvPb4DNtNosNOs85mz4jPjp+FpZxTTq qGDFvol7cKVJQ== To: jikos@kernel.org From: Mavroudis Chatzilazaridis Cc: linux-input@vger.kernel.org, benjamin.tissoires@redhat.com, lains@riseup.net, hadess@hadess.net, Mavroudis Chatzilazaridis Subject: [PATCH v2 1/2] HID: logitech-dj: Add support for a new lightspeed receiver iteration Message-ID: <20230716182320.85483-1-mavchatz@protonmail.com> Feedback-ID: 20039310:user:proton MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org The lightspeed receiver for the Pro X Superlight uses 13 byte mouse reports without a report id. The workaround for such cases has been adjusted to handle these larger packets. The device now reports the status of its battery in wireless mode and libratbag now recognizes the device and it can be configured with Piper. https://github.com/libratbag/libratbag/pull/1122 Co-developed-by: Filipe Laíns Signed-off-by: Filipe Laíns Signed-off-by: Mavroudis Chatzilazaridis --- V1 -> V2: Addressed review comment for commit message drivers/hid/hid-ids.h | 1 + drivers/hid/hid-logitech-dj.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) -- 2.34.1 diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 8a310f8ff20f..7ac7debe98f1 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -866,6 +866,7 @@ #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_2 0xc534 #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1 0xc539 #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1_1 0xc53f +#define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1_2 0xc547 #define USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_POWERPLAY 0xc53a #define USB_DEVICE_ID_SPACETRAVELLER 0xc623 #define USB_DEVICE_ID_SPACENAVIGATOR 0xc626 diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c index 62180414efcc..fef67da0de53 100644 --- a/drivers/hid/hid-logitech-dj.c +++ b/drivers/hid/hid-logitech-dj.c @@ -1692,11 +1692,12 @@ static int logi_dj_raw_event(struct hid_device *hdev, } /* * Mouse-only receivers send unnumbered mouse data. The 27 MHz - * receiver uses 6 byte packets, the nano receiver 8 bytes. + * receiver uses 6 byte packets, the nano receiver 8 bytes, + * the lightspeed receiver (Pro X Superlight) 13 bytes. */ if (djrcv_dev->unnumbered_application == HID_GD_MOUSE && - size <= 8) { - u8 mouse_report[9]; + size <= 13){ + u8 mouse_report[14]; /* Prepend report id */ mouse_report[0] = REPORT_TYPE_MOUSE; @@ -1980,6 +1981,10 @@ static const struct hid_device_id logi_dj_receivers[] = { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1_1), .driver_data = recvr_type_gaming_hidpp}, + { /* Logitech lightspeed receiver (0xc547) */ + HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, + USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1_2), + .driver_data = recvr_type_gaming_hidpp}, { /* Logitech 27 MHz HID++ 1.0 receiver (0xc513) */ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER),