Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2071753ybz; Thu, 23 Apr 2020 11:04:35 -0700 (PDT) X-Google-Smtp-Source: APiQypLfdvIHfHw/h7OOvXbOCVqIUSnUeMswnBTvSG6QpaRtoPQDB/UCp9yJjUfdNpaMnFWwijRl X-Received: by 2002:a50:d987:: with SMTP id w7mr3754216edj.276.1587665075346; Thu, 23 Apr 2020 11:04:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587665075; cv=none; d=google.com; s=arc-20160816; b=naPbauSzuEWQ3JvcI4sz2AtcW1zYrpmVnr/RRJy6VzP28oSlETb/KYhj0dLDWjqGnx +IzpDLrGtMGCpndXYiTsll8jWph/bUQ4z13D2oKi56QRDNRHdWzdatdtSOHW0JufdEud sdKER3cv0meCXT9jukUR1+8XXhheFyUMQIknvbgpG/1p1V1XTrsyL6MVbbUWxjiHfu7s MP8T9PDpXinAxAxS7EUyrxysoruj/5zC7F/ZG9rn1O7fEFhmD1bbaiPyaoVjKKfxzX3v 44E86otW9hE8KWgMvBRNjCvRV7j2LwRPLigzTQQDOl/e/W6cB03z4P0kPwimhgzOGUzF +TTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language:mime-version:user-agent :date:message-id:subject:from:to; bh=aWeEkcHcfmaJCeMhVcR2V2Yc/Ed32O1W/zuPvK9MO4E=; b=Dyob5blFT7kt8F2OoIf2PZGDA/z3j2aZRG3zyT65Y+LMXMLmBNYrLYgbbVTWdWkKjg iW97rDi9QU3dsApNTn4Xxd5o+rAmdPeXMI/hhKtMC/ocljoVQoyTuuKl2BDgtdFwNUYA huBTN1DQHyCubqAvjKsiSbiON/aig3UpnSrnusP7hWgg6pysCI+lWz3nhceggY92lR8o 9ULH0vwhngbchi44I61LQfR7BPYFGaDpj2BOPPv276UT1p3nEd4vFVThStOxebl7RlA4 t3yR4icu5rReCfZBRuwLQ32mXTrT2B5cT50PrCGcEkn2VHfiI7akO9VdoAiXyu/I2ZG1 /HOA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d5si1529557edz.401.2020.04.23.11.03.51; Thu, 23 Apr 2020 11:04:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729995AbgDWR76 (ORCPT + 99 others); Thu, 23 Apr 2020 13:59:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729991AbgDWR76 (ORCPT ); Thu, 23 Apr 2020 13:59:58 -0400 X-Greylist: delayed 396 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Thu, 23 Apr 2020 10:59:58 PDT Received: from kronos.mailus.de (kronos.mailus.de [IPv6:2a01:4f8:171:2684::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71240C09B042 for ; Thu, 23 Apr 2020 10:59:58 -0700 (PDT) Received: from [IPv6:2003:c0:7714:6b00:527b:9dff:febd:4d92] (p200300C077146B00527B9DFFFEBD4D92.dip0.t-ipconnect.de [IPv6:2003:c0:7714:6b00:527b:9dff:febd:4d92]) by kronos.mailus.de (Postfix) with ESMTPSA id 0F9C2606DA for ; Thu, 23 Apr 2020 19:53:21 +0200 (CEST) To: linux-bluetooth@vger.kernel.org From: Erik Andresen Subject: HID device with multiple collections does not work Message-ID: <319b239d-3739-63e9-9fe4-f8b4215097b2@vontaene.de> Date: Thu, 23 Apr 2020 19:53:20 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------67A6254BFE4B2AED16A829AE" Content-Language: en-US Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org This is a multi-part message in MIME format. --------------67A6254BFE4B2AED16A829AE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi, I have a simple bluetooth hid device which does work in Android but not with Linux 4.19/Bluez 5. It does have two collections in its hid description: 0xA1, 0x01, // Collection (Application) 0x85, 0x02, // Report ID (2) (...) 0xC0, // End Collection 0xA1, 0x01, // Collection (Application) 0x85, 0x01, // Report ID (1) (...) 0xC0, // End Collection Complete description is attached. Since there are multiple collections I understand that every report has to be prefixed with the id, so I send [2,0,0,0x52,0,0,0,0,0] (9 bytes) for the keycode 0x52, ID is 2. Output from btmon is: > ACL Data RX: Handle 3585 flags 0x02 dlen 16 #2072 [hci0] 485.047387 ATT: Handle Value Notification (0x1b) len 11 Handle: 0x0015 Data: 020000520000000000 This looks good for me so far, unfortunately Linux does not pick it up, in dmesg I get: drivers/hid/hid-core.c: undefined report_id 0 received cat /sys/kernel/debug/hid/0005:0000:0000.000­3/events # gives me: report (size 10) (numbered) = 00 02 00 00 52 00 00 00 00 00 so I get 10 bytes instead the 9 I send So far I traced it to hog-lib.c, report_value_cb() of bluez where this extra 0 is prepended in the if (hog->has_report_id) block. report->id is 0 at this point. If I skip this extra addition of the zero or manually set id=2 here it works as expected. Does someone has an idea what I do wrong or what I'm missing? greetings, Erik Andresen --------------67A6254BFE4B2AED16A829AE Content-Type: text/plain; charset=UTF-8; name="hid_report_descriptor.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="hid_report_descriptor.txt" MHgwNSwgMHgwMSwgICAgICAgIC8vIFVzYWdlIFBhZ2UgKEdlbmVyaWMgRGVza3RvcCBDdHJs cykKMHgwOSwgMHgwNiwgICAgICAgIC8vIFVzYWdlIChLZXlib2FyZCkKMHhBMSwgMHgwMSwg ICAgICAgIC8vIENvbGxlY3Rpb24gKEFwcGxpY2F0aW9uKQoweDg1LCAweDAyLCAgICAgICAg Ly8gICBSZXBvcnQgSUQgKDIpCjB4MDUsIDB4MDcsICAgICAgICAvLyAgIFVzYWdlIFBhZ2Ug KEticmQvS2V5cGFkKQoweDE5LCAweEUwLCAgICAgICAgLy8gICBVc2FnZSBNaW5pbXVtICgw eEUwKQoweDI5LCAweEU3LCAgICAgICAgLy8gICBVc2FnZSBNYXhpbXVtICgweEU3KQoweDE1 LCAweDAwLCAgICAgICAgLy8gICBMb2dpY2FsIE1pbmltdW0gKDApCjB4MjUsIDB4MDEsICAg ICAgICAvLyAgIExvZ2ljYWwgTWF4aW11bSAoMSkKMHg3NSwgMHgwMSwgICAgICAgIC8vICAg UmVwb3J0IFNpemUgKDEpCjB4OTUsIDB4MDgsICAgICAgICAvLyAgIFJlcG9ydCBDb3VudCAo OCkKMHg4MSwgMHgwMiwgICAgICAgIC8vICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBXcmFw LExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbikKCjB4OTUsIDB4MDEs ICAgICAgICAvLyAgIFJlcG9ydCBDb3VudCAoMSkKMHg3NSwgMHgwOCwgICAgICAgIC8vICAg UmVwb3J0IFNpemUgKDgpCjB4ODEsIDB4MDEsICAgICAgICAvLyAgIElucHV0IChDb25zdCxB cnJheSxBYnMsTm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRp b24pCgoweDk1LCAweDA1LCAgICAgICAgLy8gICBSZXBvcnQgQ291bnQgKDUpCjB4NzUsIDB4 MDEsICAgICAgICAvLyAgIFJlcG9ydCBTaXplICgxKQoweDA1LCAweDA4LCAgICAgICAgLy8g ICBVc2FnZSBQYWdlIChMRURzKQoweDE5LCAweDAxLCAgICAgICAgLy8gICBVc2FnZSBNaW5p bXVtIChOdW0gTG9jaykKMHgyOSwgMHgwNSwgICAgICAgIC8vICAgVXNhZ2UgTWF4aW11bSAo S2FuYSkKMHg5MSwgMHgwMiwgICAgICAgIC8vICAgT3V0cHV0IChEYXRhLFZhcixBYnMsTm8g V3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24sTm9uLXZvbGF0 aWxlKQoKMHg5NSwgMHgwMSwgICAgICAgIC8vICAgUmVwb3J0IENvdW50ICgxKQoweDc1LCAw eDAzLCAgICAgICAgLy8gICBSZXBvcnQgU2l6ZSAoMykKMHg5MSwgMHgwMSwgICAgICAgIC8v ICAgT3V0cHV0IChDb25zdCxBcnJheSxBYnMsTm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0 YXRlLE5vIE51bGwgUG9zaXRpb24sTm9uLXZvbGF0aWxlKQoKMHg5NSwgMHgwNiwgICAgICAg IC8vICAgUmVwb3J0IENvdW50ICg2KQoweDc1LCAweDA4LCAgICAgICAgLy8gICBSZXBvcnQg U2l6ZSAoOCkKMHgxNSwgMHgwMCwgICAgICAgIC8vICAgTG9naWNhbCBNaW5pbXVtICgwKQow eDI1LCAweDczLCAgICAgICAgLy8gICBMb2dpY2FsIE1heGltdW0gKDExNSkKMHgwNSwgMHgw NywgICAgICAgIC8vICAgVXNhZ2UgUGFnZSAoS2JyZC9LZXlwYWQpCjB4MTksIDB4MDAsICAg ICAgICAvLyAgIFVzYWdlIE1pbmltdW0gKDB4MDApCjB4MjksIDB4NzMsICAgICAgICAvLyAg IFVzYWdlIE1heGltdW0gKDB4NzMpCjB4ODEsIDB4MDAsICAgICAgICAvLyAgIElucHV0IChE YXRhLEFycmF5LEFicyxObyBXcmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQ b3NpdGlvbikKCjB4MDksIDB4MDUsICAgICAgICAvLyAgIFVzYWdlICgweDA1KQoweDE1LCAw eDAwLCAgICAgICAgLy8gICBMb2dpY2FsIE1pbmltdW0gKDApCjB4MjYsIDB4RkYsIDB4MDAs ICAvLyAgIExvZ2ljYWwgTWF4aW11bSAoMjU1KQoweDc1LCAweDA4LCAgICAgICAgLy8gICBS ZXBvcnQgU2l6ZSAoOCkKMHg5NSwgMHgwMiwgICAgICAgIC8vICAgUmVwb3J0IENvdW50ICgy KQoweEIxLCAweDAyLCAgICAgICAgLy8gICBGZWF0dXJlIChEYXRhLFZhcixBYnMsTm8gV3Jh cCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24sTm9uLXZvbGF0aWxl KQoweEMwLCAgICAgICAgICAgICAgLy8gRW5kIENvbGxlY3Rpb24KMHgwNSwgMHgwQywgICAg ICAgIC8vIFVzYWdlIFBhZ2UgKENvbnN1bWVyKQoweDA5LCAweDAxLCAgICAgICAgLy8gVXNh Z2UgKENvbnN1bWVyIENvbnRyb2wpCjB4QTEsIDB4MDEsICAgICAgICAvLyBDb2xsZWN0aW9u IChBcHBsaWNhdGlvbikKMHg4NSwgMHgwMSwgICAgICAgIC8vICAgUmVwb3J0IElEICgxKQow eDE1LCAweDAwLCAgICAgICAgLy8gICBMb2dpY2FsIE1pbmltdW0gKDApCjB4MjUsIDB4MDEs ICAgICAgICAvLyAgIExvZ2ljYWwgTWF4aW11bSAoMSkKMHg3NSwgMHgwMSwgICAgICAgIC8v ICAgUmVwb3J0IFNpemUgKDEpCjB4OTUsIDB4MDEsICAgICAgICAvLyAgIFJlcG9ydCBDb3Vu dCAoMSkKMHgwOSwgMHhCNSwgICAgICAgIC8vICAgVXNhZ2UgKFNjYW4gTmV4dCBUcmFjaykK MHg4MSwgMHgwMiwgICAgICAgIC8vICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBXcmFwLExp bmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbikKCjB4MDksIDB4QjYsICAg ICAgICAvLyAgIFVzYWdlIChTY2FuIFByZXZpb3VzIFRyYWNrKQoweDgxLCAweDAyLCAgICAg ICAgLy8gICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBT dGF0ZSxObyBOdWxsIFBvc2l0aW9uKQoKMHgwOSwgMHhCNywgICAgICAgIC8vICAgVXNhZ2Ug KFN0b3ApCjB4ODEsIDB4MDIsICAgICAgICAvLyAgIElucHV0IChEYXRhLFZhcixBYnMsTm8g V3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24pCgoweDA5LCAw eEI4LCAgICAgICAgLy8gICBVc2FnZSAoRWplY3QpCjB4ODEsIDB4MDIsICAgICAgICAvLyAg IElucHV0IChEYXRhLFZhcixBYnMsTm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5v IE51bGwgUG9zaXRpb24pCgoweDA5LCAweENELCAgICAgICAgLy8gICBVc2FnZSAoUGxheS9Q YXVzZSkKMHg4MSwgMHgwMiwgICAgICAgIC8vICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBX cmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbikKCjB4MDksIDB4 RTIsICAgICAgICAvLyAgIFVzYWdlIChNdXRlKQoweDgxLCAweDAyLCAgICAgICAgLy8gICBJ bnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBO dWxsIFBvc2l0aW9uKQoKMHgwOSwgMHhFOSwgICAgICAgIC8vICAgVXNhZ2UgKFZvbHVtZSBJ bmNyZW1lbnQpCjB4ODEsIDB4MDIsICAgICAgICAvLyAgIElucHV0IChEYXRhLFZhcixBYnMs Tm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24pCgoweDA5 LCAweEVBLCAgICAgICAgLy8gICBVc2FnZSAoVm9sdW1lIERlY3JlbWVudCkKMHg4MSwgMHgw MiwgICAgICAgIC8vICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBXcmFwLExpbmVhcixQcmVm ZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbikKCjB4QzAsICAgICAgICAgICAgICAvLyBF bmQgQ29sbGVjdGlvbgoKLy8gMTI3IGJ5dGVzCg== --------------67A6254BFE4B2AED16A829AE--