Return-Path: MIME-Version: 1.0 In-Reply-To: <20140508073646.GA14385@t440s.lan> References: <20140506004501.318D810193E@puck.mtv.corp.google.com> <20140508073646.GA14385@t440s.lan> Date: Thu, 8 May 2014 12:21:17 -0700 Message-ID: Subject: Re: [PATCH] input: Add userspace HID support From: Petri Gynther To: Petri Gynther , linux-bluetooth Content-Type: text/plain; charset=UTF-8 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi Johan, On Thu, May 8, 2014 at 12:36 AM, Johan Hedberg wrote: > Hi Petri, > > On Mon, May 05, 2014, Petri Gynther wrote: >> Enable HID protocol handling in userspace when UserspaceHID=true in input.conf. >> >> Benefits of userspace HID: >> 1. Persistent HID/input pipeline >> For a Bluetooth HID device, the corresponding kernel HID/input devices are >> created only once when the Bluetooth HID device is used the first time. >> The HID/input pipeline is not destroyed and recreated every time when >> the Bluetooth HID device disconnects and reconnects. >> >> 2. HID vs HoG parity >> Enables HID and HoG devices to operate the same way in BlueZ stack, using >> uHID kernel module (/dev/uhid) to pass HID report data between bluetoothd >> and kernel HID subsystem. >> >> 3. Debugging >> It is easier to debug HID protocol in userspace than in HIDP kernel module. >> --- >> Makefile.plugins | 3 +- >> profiles/input/device.c | 674 +++++++++++++++++++++++++++++++++++++++++++-- >> profiles/input/device.h | 1 + >> profiles/input/hidp_defs.h | 79 ++++++ >> profiles/input/input.conf | 4 + >> profiles/input/manager.c | 10 + >> 6 files changed, 754 insertions(+), 17 deletions(-) >> create mode 100644 profiles/input/hidp_defs.h > > Considering that we're using uhid also for the Android HID solution > (see android/hidhost.c) is there an opportunity here to avoid code > duplication by sharing some code? I'm not saying that this must be done > before we apply your patch, but if code sharing is possible it'd be good > to try to refactor common parts into src/shared/hid.c or similar. > > Johan I think Marcel also mentioned this earlier. I can certainly look into refactoring, but I'd prefer to do that after this patch is applied, so we have a working userspace HID solution as a baseline. -- Petri