mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-03-07 12:12:07 +00:00
Bluetooth: Implement raw output support for HIDP layer
Implement raw output callback which is used by hidraw to send raw data to the underlying device. Without this patch, the userspace hidraw-based applications can't send output reports to HID Bluetooth devices. Reported-and-tested-by: Brian Gunn <bgunn@solekai.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
fed4c2508b
commit
2da31939a4
@ -280,6 +280,13 @@ static int hidp_send_report(struct hidp_session *session, struct hid_report *rep
|
|||||||
return hidp_queue_report(session, buf, rsize);
|
return hidp_queue_report(session, buf, rsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int hidp_output_raw_report(struct hid_device *hid, unsigned char *data, size_t count)
|
||||||
|
{
|
||||||
|
if (hidp_queue_report(hid->driver_data, data, count))
|
||||||
|
return -ENOMEM;
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
static void hidp_idle_timeout(unsigned long arg)
|
static void hidp_idle_timeout(unsigned long arg)
|
||||||
{
|
{
|
||||||
struct hidp_session *session = (struct hidp_session *) arg;
|
struct hidp_session *session = (struct hidp_session *) arg;
|
||||||
@ -785,6 +792,8 @@ static int hidp_setup_hid(struct hidp_session *session,
|
|||||||
hid->dev.parent = hidp_get_device(session);
|
hid->dev.parent = hidp_get_device(session);
|
||||||
hid->ll_driver = &hidp_hid_driver;
|
hid->ll_driver = &hidp_hid_driver;
|
||||||
|
|
||||||
|
hid->hid_output_raw_report = hidp_output_raw_report;
|
||||||
|
|
||||||
err = hid_add_device(hid);
|
err = hid_add_device(hid);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto failed;
|
goto failed;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user